Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.10;
Скачать: CL | DM;

Вниз

Нормали   Найти похожие ветки 

 
Gerda ©   (2002-10-11 11:07) [0]

Дарова мастера, я с таким вопросом:
имеется поверхность (3,4-уголиник) мне нужно зная координаты (абсцис,ординат и аппликат) наити нормаль к ней.
Как это сделать (формула), а то я искал, ничего подходящего пока нету.
Заранее благодарен.


 
Sapersky_   (2002-10-11 11:21) [1]

function PlaneNormal(Const v1, v2, v3: TD3DVector): TD3DVector;
Var va, vb, vc : TD3DVector;
begin
va:=VectorSub(v1,v2);
vb:=VectorSub(v3,v2);
vc:=VectorCrossProduct(va, vb);
Result:=VectorNormalize(vc);
end;

VectorCrossProduct - векторное произведение:

function VectorCrossProduct(const v1, v2: TD3DVector) : TD3DVector;
begin
result.x := (v1.y*v2.z) - (v1.z*v2.y);
result.y := (v1.z*v2.x) - (v1.x*v2.z);
result.z := (v1.x*v2.y) - (v1.y*v2.x);
end;

VectorNormalize - нормализация, вычисление длины и деление всех координат на неё.
VectorSub - вычитание векторов.



 
Gerda ©   (2002-10-11 11:30) [2]

Sapersky_, пасиба. Я бацаю прогу ( http://delphi.mastak.ru/cgi-bin/download.pl?look=1&id=1025527080&n=1) без использования Директа, и Опэна, и проч... так мне нужна сама формула (из курса аналитической геометрии чтоли) расчета нормали.....мож поможеш ??


 
k   (2002-10-11 14:24) [3]

всмотрись в мессагу Sapersky_ ты не видишь формулу?

есть треуголник, задаваемый векторами v1, v2, v3.
найдем 2 стороны
va = v1 - v2;
vb = v3 - v2;
т.е. наш треуг построен на этих двух векторах

векторное произведение дает vc = va X vb - вектор, перпендикулярный пл-ти треуг-а.
чтоб получить нормаль осталось привести его к единичной длине

n = vc/|vc|

|vc|(скаляр, число - длина вектора vc) = sqrt(sqr(x) + sqr(y) + sqr(z))

такие дела.
удачи




Страницы: 1 вся ветка

Текущий архив: 2003.03.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
8-29965
STANT
2002-11-27 17:22
2003.03.10
DirectX


3-29749
jen_bond
2003-02-19 15:40
2003.03.10
DBGrid


1-29887
Flier
2003-02-26 15:31
2003.03.10
Как в TMemo использовать строки разного цвета??


1-29805
Шурик Ш
2003-02-27 18:15
2003.03.10
А можно ли выровнять колонку StringGrid а по правому краю?


6-30003
Blacki
2003-01-20 16:06
2003.03.10
Вопрос по TServerSocket