|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.09.2008, 22:00 | #1 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Уравнение плоскости
Немного теории о коэффициентах общего уравнения плоскости
A = y1 *(z2 - z3) + y2* (z3 - z1) + y3* (z1 - z2) B = z1 *(x2 - x3) + z2* (x3 - x1) + z3 *(x1 - x2) C = x1 *(y2 - y3) + x2* (y3 - y1) + x3* (y1 - y2) - D = x1* (y2 *z3 - y3 *z2) + x2* (y3* z1 - y1* z3) + x3* (y1* z2 - y2* z1) {или по-другому D = -x1 *(y2* z3 - y3* z2) - x2 *(y3* z1 - y1* z3) - x3* (y1* z2 - y2* z1)} Знак s = Ax + By + Cz + D определяет, с какой стороны по отношению к плоскости находится точка (x,y,z). Если s > 0, то точка лежит в той стороне, куда указывает нормальный вектор (A,B,C). Если s < 0 - на противаположной стороне, а в случае s = 0 точка принадлежит плоскости. взято отсюда На основе этого, вычисляю для двух точек (x, y, z) и (NewX, NewY, NewZ) s1:=A*x+B*y+C*z-D; s2:=A*newx+B*newy+C*newz-D; if s1*s2<0 then то точки разные стороны плоскости и получаю совершенно верный результат и дальнейшие построения (в том числе на бумаге) подтверждают это. Если же +D (по теории), то получаю результат для плоскости симметричной относительно начала координат. Хотесось бы знать с чем это связано? Может я ошибся где? |
26.09.2008, 22:11 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Никоим образом не хочу вас оскорбить.
Но, по-моему, вы слишком буквально поняли название раздела "Помощь студентам" (кстати, он находится в рубрике "Новички в программировании"). Согласитесь, что и форум наш называется "Клуб программистов", а не "Студенческий клуб" или "Клуб математиков". Боюсь, что по вашему примеру сюда скоро начнут обращаться студенты-химики, потом (не дай бог), студенты-гуманитарии... Все же мы пытаемся оказывать помощь именно в вопросах ПРОГРАММИРОВАНИЯ. Вопросы, не относящиеся к программированию, способствуют лишь засорению форума... Может быть, справедливо было перенести эту тему в раздел свободного общения или "Для спамеров"? Последний раз редактировалось mihali4; 27.09.2008 в 13:02. |
26.09.2008, 22:22 | #3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Да вобщем-то я уже и не студент, а это для программирования надо. Вобщем такой казус появляется когда я плоскость поворачиваю командой glRotate(alpha, 1, 0, 0);
За спамеров особое спасибо Перефразирую вопрос Может это потому что glRotate поворачивает оси координат, а не мою плоскость и из-за этого всё симметрично? Последний раз редактировалось eoln; 26.09.2008 в 22:42. |
27.09.2008, 09:08 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
а какой геометрический смысл у коэффициентов A, B, C, D.
A, B, C -поворот плоскости относительной координатных осей D ??? последний определяющий параметр смещение относительно центра координат
программа — запись алгоритма на языке понятном транслятору
|
27.09.2008, 09:14 | #5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
поправка не поворот а наклон плоскости относительно осей
программа — запись алгоритма на языке понятном транслятору
|
27.09.2008, 09:22 | #6 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Спасибо за участие, уже разобрался - все углы поворота умножил на -1
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
точки плоскости, заданные своими координатами, попадают в круг с радиусом R | Jondeer | Общие вопросы C/C++ | 6 | 16.06.2008 00:06 |
Как с помощью Microsoft Excel написать программу, позволяющую перемещать предмет на плоскости? | Vova4kA | Microsoft Office Excel | 10 | 28.05.2008 14:18 |
на координатной плоскости, координаты в ручную | Proskurin | Помощь студентам | 5 | 18.04.2008 13:31 |
Написать класс - прямые на плоскости. | Red Devel | Помощь студентам | 7 | 22.01.2008 15:23 |