Filter löschen
Filter löschen

Reduce the length of the vector

4 Ansichten (letzte 30 Tage)
Mirzobek Malikov
Mirzobek Malikov am 30 Aug. 2022
Kommentiert: Mirzobek Malikov am 30 Aug. 2022
I have two points B1(2.91, 8.05, 43.85), A1(23.97, 4.65, 25) and center(4.15, 1.11, 25). I draw a circle using these three points. Then from these points I have two vectors to get a normal vector from the center. From my data, the normal vector length is too long. I have normalized the normal vector but in the plot its angle was different, when i checked the dot( N-O1, A1-O1) or dot( N-O1, B1-O1) were nonzero.
Is there any function or an approach to reduce the length of it by saving it to be a normal vector.
The normal vector gained by using cross(B1-O1, A1-O1) command.

Akzeptierte Antwort

Matt J
Matt J am 30 Aug. 2022
Bearbeitet: Matt J am 30 Aug. 2022
when i checked the dot( N-O1, A1-O1) or dot( N-O1, B1-O1) were nonzero.
You should be checking dot( N, A1-O1)
B1=[2.91, 8.05, 43.85];
A1=[23.97, 4.65, 25];
O1=[4.15, 1.11, 25];
N=normalize( cross(B1-O1, A1-O1) ,'n');
norm(N)
ans = 1
dot(N,A1-O1)
ans = 4.4409e-16
dot(N,B1-O1)
ans = -4.9960e-16
  4 Kommentare
Matt J
Matt J am 30 Aug. 2022
Bearbeitet: Matt J am 30 Aug. 2022
Sorry, I don't follow. By nature, normal vectors have direction. They do not have "position".
Mirzobek Malikov
Mirzobek Malikov am 30 Aug. 2022
it's ok. i found the solution to for changing direction of the normal vector. Just multiply N with minus. dot(-N, A1-O1) give zero value.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by