Главная страница
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.022 c
14-30096
asafr
2003-02-21 11:54
2003.03.10
РОССИЯ ПОДДЕРЖИТ США КАЧЕСТВЕННЫМИ ГРОБАМИ


4-30176
top100
2003-01-18 01:25
2003.03.10
как проверить соединение с инетом


14-30045
lpa
2003-02-20 14:24
2003.03.10
Отладка компонентов


3-29725
denis24
2003-02-19 10:28
2003.03.10
Вставка в ячейку Dbrid компонента


8-29958
Dangerouse
2002-11-27 14:05
2003.03.10
Из avi сделать jpg