How to calculate from three points the "normal" at the second point

8 次查看(过去 30 天)
Hello !
To program an active contour, I would need from the coordinates of 3 points to determine the normal of the second point.
As in the picture, I would have to determine the normal for point "a".
Any idea?
Thank you
  3 个评论
David Goodmanson
David Goodmanson 2020-4-2
Hi Dany,
how do propose to define the normal at point A? Is it halfway in between the two dotted normals that you show, or is it something else?
Dany DA CRUZ BORGES
I have the x and y coordinates of the 3 points. And yes I seek to establish the vector which is at the level of A thanks to the coordinates (x, y) of the point which is on the left of A, of A and the point which is on the right of A.I have the x and y coordinates of the 3 points. And yes I seek to establish the vector which is at the level of A thanks to the coordinates (x, y) of the point which is on the left of A, of A and the point which is on the right of A.

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2020-4-2
编辑:Matt J 2020-4-2
Once you have answered David's question, the attached function should be useful. It will find the normals to all the facets of a 2D polygon. Example,
Vertices=[0 0; 1 0; 0 1]; %vertices of a triangle
normals=vert2con_special(Vertices)
gives as output,
normals =
0 -1
1 1
-1 0
  6 个评论
Dany DA CRUZ BORGES
I would have to calculate the tangent as in the image below, then determine the normal to this tangent.
Matt J
Matt J 2020-4-3
You could use John's minboundcircle function in this FEX contribution,
to find the green circle shown in your illustration. The normal will then simply be the ray A-O from the center of the circle to the point A.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Directed Graphs 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by