![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Z координата...
Landgraph © (2003-08-07 11:18:00)
Есть треугольник в пространстве и есть точка, принадлежащая этому треугольнику в плоскости XY, т.е. если смотреть (ось X - горизонтально, ось Y - вертикально) "спереди", то точка лежит в пределах треугольника. Так вот, как определить координату Z для этой точки, если все координаты вершин треугольника известны и известны координаты X и Y точки?
человек с Марса (2003-08-07 22:57:00) [1]
ур-ние плоскости ax+by+cz+d=0 можешь найти?
если знаешь нормаль - то это совсем просто:
a,b,c = x,y,z нормали, d = - n*A - скалярное произведение нормали n и любой точки на плоскости A
нормаль ищем как (A - C)x(B - C) и нормируем. A B C - вершины твоего треуголника
Goorus (2003-08-07 16:46:00) [2]Я как-то над этим долго бился, а вроде не так уж и сложная задчка, даю алгоритм решения для треугольника ABC:
Нужно в плоскости XY "построить" линию, проходящую через одну из вершин треугольника( пусть это будет вершина A )и данную нам точку, в той же плоскости она пересечётся с линией BC (сторона треугольника) находим точку пересечения ( точка M ), Вычесляем её Z позицию через линию BC, далее в плоскости XZ строим линию через точки A и M, теперь в формулу этой линии подставляем X необходимой точки и ВСЁ!!!
Формула линии Y:=A*X+B;
Чтобы найти A и B через систему уравнений (через две точки):
{ y1=a*x1+b
- ( x1-x2) [2]Я как-то над этим долго бился, а вроде не так уж и сложная задчка, даю алгоритм решения для треугольника ABC:
Нужно в плоскости XY "построить" линию, проходящую через одну из вершин треугольника( пусть это будет вершина A )и данную нам точку, в той же плоскости она пересечётся с линией BC (сторона треугольника) находим точку пересечения ( точка M ), Вычесляем её Z позицию через линию BC, далее в плоскости XZ строим линию через точки A и M, теперь в формулу этой линии подставляем X необходимой точки и ВСЁ!!!
Формула линии Y:=A*X+B;
Чтобы найти A и B через систему уравнений (через две точки):
{ y1=a*x1+b
- ;
{ y2=a*x2+b
=>y1-y2=a*(x1-x2)=>
=>a=(y1-y2)/(x1-x2)
b=y1-a*x1
Ну и ещё ты замучаешься с ситуациями когда y1=y2 или x1=x2
MBo (2003-08-07 11:49:00) [3]
уравнение плоскости
ax+by+cz+d=0