X>теперь ясно... (n_x*Y_x+n_y*Y_y+n_z*Y_z) = 0 ,так как угол между ними pi/2
Ну да, это и есть
ортогональность...
X>этот оптимизированный код работает быстрее!
Очень рад!
X>а можно его ещё улучшить?
Если вектор нормали N и вектор Y не меняются, т.е. плоскость всегда остается постоянной, то тогда можно использовать второй базисный вектор X вместо N — вычислений будет меньше. То есть, просто где-нибудь в самом начале положить
X_x = n_y*Y_z - n_z*Y_y;
X_y = n_z*Y_x - n_x*Y_z;
X_z = n_x*Y_y - n_y*Y_x;
а потом сразу при проецировании использовать X_x, X_y и X_z так, как я написал до этого. Только я не понимаю, а зачем еще это?
Xp/=cf_a*l;
Yp/=cf_a*l;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>