Azzera filtri
Azzera filtri

Reduce the length of the vector

4 visualizzazioni (ultimi 30 giorni)
Mirzobek Malikov
Mirzobek Malikov il 30 Ago 2022
Commentato: Mirzobek Malikov il 30 Ago 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.

Risposta accettata

Matt J
Matt J il 30 Ago 2022
Modificato: Matt J il 30 Ago 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 Commenti
Matt J
Matt J il 30 Ago 2022
Modificato: Matt J il 30 Ago 2022
Sorry, I don't follow. By nature, normal vectors have direction. They do not have "position".
Mirzobek Malikov
Mirzobek Malikov il 30 Ago 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.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by