How can I calculate the length of the longest side of a rectangle and the slope of an imaginary rectangle parallel to the longest side of the first?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I need a suggestion for this easy but confusing dilemma.
I have a rectangle formed by 4 points (x2,y1) (x1,y2) (x3,y4) (x4,y3). The maximum and minimum are respectively (x4,y4) and (x1,y1).
I need to create a script to obtain the length of the longest side of the rectangle and the slope of an imaginary rectangle parallel to the longest side of the rectangle.
The problem is not so easy taking into account that the rectangle could be in many different positions. I have an idea about the slope, using Pythagoras and the maximum and minimum values, but...the length...I'm stuck on that.
2 comentarios
Sean de Wolski
el 17 de Oct. de 2011
What have you tried thus far? Show us with code (by editing your question).
Respuesta aceptada
the cyclist
el 17 de Oct. de 2011
I don't understand the part about the slope, but there is an easy way to find the longest side. The distance between each pair of points is
>> dij = sqrt((xi-xj)^2+(yi-yj)^2);
Calculate this for all pairs. You should get three unique length values, corresponding to:
- short side
- long side
- diagonal
The middling value will be the long side of the rectangle.
(You might need to be careful about floating point inexactitudes.)
4 comentarios
Sean de Wolski
el 17 de Oct. de 2011
-use atand to calculate the angle in degrees
-use the second output of max/min to identify which vertex corresponds to max/min.
-use hypot() to calculate ddg
Más respuestas (1)
Image Analyst
el 19 de Oct. de 2011
Sorry - I gave you a more extensive answer than the Cyclist but for some reason you (or someone) deleted your first posting of this. I gave you the slope, and told you how to find the various lengths. I'm not inclined to repeat my prior waste of time.
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!