forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   С какой стороны плоскости точка? (http://forum.boolean.name/showthread.php?t=7662)

Mr_F_ 20.01.2009 19:14

С какой стороны плоскости точка?
 
ммда...надо задачку решить :-)

есть бесконечная плоскость, известен её нормаль и коорды.

есть точка со своими коордами.

как узнать с какой стороны плоскости находится точка?

H@NON 20.01.2009 19:44

Ответ: С какой стороны плоскости точка?
 
ну если средствами блитца, тогда поставь в точку плоскости пивот, поверни его по нормалям(умножь нормаль на 180, получится градус, а затем задай этот угол пивоту) и через функцию TformVector определи с какой стороны точка.

Код:

piv = CreatePivot()
positionentity piv, x0, y0, z0
RotateEntity piv, nx*180, ny*180, nz*180
TFormVector x1, y1, z1, 0, piv
If TFormedY > 0 then Print "Точка выше плоскости"


Mr_F_ 20.01.2009 20:03

Ответ: С какой стороны плоскости точка?
 
а нет другого способа? а то в ксорсе мне тформвектор мав даёт))))

H@NON 20.01.2009 20:53

Ответ: С какой стороны плоскости точка?
 
Тебе Squid на Blitz.pp.ru уже ответил как можно :)
Для потомков привожу цитату
Цитата:

if (normal.x * X + normal.y * Y + normal.z * Z + distance <= 0), то точка находится за плоскостью
distance - расстояние от точки до плоскости


ABTOMAT 20.01.2009 23:43

Ответ: С какой стороны плоскости точка?
 
Эта задача математически элементарна. Жаль пока в СЗИПе был уже за меня всё ответили.

HolyDel 21.01.2009 09:44

Ответ: С какой стороны плоскости точка?
 
вообще, довольно много интересных решений можно найти тут:
http://steps3d.narod.ru/snippets.html

правда это С++, но большинство легко переносится на блитц.


Часовой пояс GMT +4, время: 14:44.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot