Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Расчёт нормали

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Расчёт нормали
Имя
Сообщение << Старые топики   Новые топики >>
Расчёт нормали - 2006-01-17 19:48:50   
hladon

Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
Объясните, если кто знает, как посчитать координаты вектора-нормали к плоскости по заданным трём точкам, лежащим на этой плоскости.(с заданной стороны от плоскости)
Post #: 1
Расчёт нормали - 2006-01-17 23:20:28   
MrBlack

Сообщений: 268
Оценки: 0
Присоединился: 2004-05-24 00:02:27
Сначала надо получить ур-е проскости в виде Ax+By+Cz+D=0. Для этого составляешь систему уравнений:
Ax1+By1+Cz1+D=0
Ax2+By2+Cz2+D=0
Ax3+By3+Cz3+D=0
(Числа получатся с точностью до произвольного множителя, отнормировать можно)
Дальше вот твоя нормаль: {A;B;C}
Теперь, чтобы в нужную сторону повернута была, проверь, в ту сторону или не в ту (ты не уточнил, чем задается сторона), и если надо, умножь на -1
Post #: 2
Расчёт нормали - 2006-01-18 04:17:13   
3xIProiD

Сообщений: 11
Оценки: 0
Присоединился: 2006-01-18 02:12:30
Итак слушай меня:

НАДО ПРОСТО ПОСЧИТАТЬ ОПРЕДЕЛИТЕЛЬ,и приравнять к нулю(тогда получишь уравнение плоскости):
| x-x1 ; y-y1 ; z-z1 |
| x2-x1 ; y2-y1 ; z2-z1 | = 0
| x3-x1 ; y3-y1 ; z3-z1 |
таким образом раскрой определитель,и коеффициенты перед x,y,z приравняй соответсвенно к A,B,C ДАЛЕЕ ПИШЕШЬ ОТВЕТ:
n[A,B,C]

Обьяснение:
РЕШЕНИЕ В 2 ЭТАПА:
1 Этап //НАХОЖДЕНИЕ УРАВНЕНИЯ ПЛОСКОСТИ
Даны три точки:

M1(x1,y1,z1)
M2(x2,y2,z2)
M3(x3,y3,z3)

Типа берём произвольную точку M(x,y,z),она будет принадлежать плоскости искомой,тогда и только тогда,когда (<=>) векторы M1_M , M1_M2 , M1_M3 компланарны(т.е. лежат в одной плоскости)

M1_M (x-x1 ; y-y1 ; z-z1)
M1_M2(x2-x1 ; y2-y1 ; z2-z1)
M1_M3(x3-x1 ; y3-y1 ; z3-z1)

Условие компланарности говорит о том,что определитель из координат векторов(он же в данном случае и ОБЬЁМ построенного параллелипипеда,на этих векторах) РАВЕН 0.
Далее надо раскрыть определитель,и получить непосредственно уравнение плоскости.
2 ЭТАП
из уравнения вида:
Ах+Вх+Сх+D=0 написать нормаль —> n[A,B,C]

А ваще,если ты не знаешь как посчитать определитель,то я тебе прям ответ напишу…
Короче,раскрываю определитель:
| y2-y1 ; z2-z1 | | x2-x1 ; z2-z1 | | x2-x1 ; y2-y1 |
(x-x1)| | + (y-y1)| | + (z-z1)| | = 0
| y3-y1 ; z3-z1 | | x3-x1 ; z3-z1 | | x3-x1 ; y3-y1 |

<=>
(x-x1){ (y2-y1)(z3-z1)-(y3-y1)(z2-z1) } + (y-y1){ (x2-x1)(z3-z1)-(x3-x1)(z2-z1) } + (z-z1){ (x2-x1)(y3-y1)-(x3-x1)(y2-y1) } = 0
<=>
A=(y2-y1)(z3-z1)-(y3-y1)(z2-z1);
B=(x2-x1)(z3-z1)-(x3-x1)(z2-z1);
C=(x2-x1)(y3-y1)-(x3-x1)(y2-y1);

ИТАК ВОТ ОТВЕТ:
n[(y2-y1)(z3-z1)-(y3-y1)(z2-z1) ; (x2-x1)(z3-z1)-(x3-x1)(z2-z1) ; (x2-x1)(y3-y1)-(x3-x1)(y2-y1) ]
где (x1,y1,z1)-координаты первой точки
(x2,y2,z2)-координаты второй точки
(x3,y3,z3)-координаты третьей точки
Всё задача решена полностью…благодарю за внимание…
[sm=go139.gif]
Post #: 3
Расчёт нормали - 2006-01-18 07:33:22   
hladon

Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
VERY VERY BIG THANKS!!![sm=sm203.gif]
Post #: 4
Расчёт нормали - 2006-01-18 08:58:13   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
какие сложные рассуждения… можно ж гораздно проще, опираясь на тот факт, что векторное произведение даёт вектор перпендикулярный обоим множителям.
Post #: 5
Расчёт нормали - 2006-01-19 12:15:12   
hladon

Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
и всё бы хорошго да вот одна проблема - в большинстве случаев нормаль такая n[0,0,0]-можт кто нить знает как избежать этого[sm=15.gif]
Post #: 6
Расчёт нормали - 2006-01-19 22:21:53   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
считаешь определитель:
i j k
x1 y1 z1
x2 y2 z2
и усё.
ежели оба вектора не нулевой длины и не параллельны, то результатом будет вектор не нулевой длины.

на всякий случай поясню, для танков, что i, j, k – это единичные вектора параллельные соответственно Ox, Oy и Oz.
Post #: 7
Расчёт нормали - 2006-01-19 23:00:21   
3xIProiD

Сообщений: 11
Оценки: 0
Присоединился: 2006-01-18 02:12:30
Итак HION,я математик,я тебе дал абсолютно правильное решение,и ответ там абсолютно правильный.

Ответ rgo
quote:

—————-<BR>Цитата: Дата:19.01.2006 22:21:53, Автор:rgo ::
считаешь определитель:<BR>i j k<BR>x1 y1 z1<BR>x2 y2 z2<BR>и усё.<BR>ежели оба вектора не нулевой длины и не параллельны, то результатом будет вектор не нулевой длины.<BR><BR>на всякий случай поясню, для танков, что i, j, k – это единичные вектора параллельные соответственно Ox, Oy и Oz.
—————-


Ты сам танк,твой вариант не верный т.к. ты не указал что x1,y1,z1 и x2,y2,z2 это не координаты данных точек,а координаты векторов,проведенных из одной,из тех 3х данных точек,к двум остальным точкам!!!
Надо считать определитель такой,уж в таком случае:
i j k
x2-x1 y2-y1 z2-z1
x3-x1 y3-y1 z3-z1

где:
(x1,y1,z1)-координаты первой точки
(x2,y2,z2)-координаты второй точки
(x3,y3,z3)-координаты третьей точки

Либо так:

i j k
XX1 YY1 ZZ1
XX2 YY2 ZZ2

где
(XX1,YY1,ZZ1) - координаты первого вектора,проведённого из первой точки ко второй
(XX2,YY2,ZZ2) - координаты второго вектора,проведённого из первой точки к третьей

и естесвенно учитывая
XX1 = x2-x1
YY1 = y2-y1
ZZ1 = z2-z1
XX2 = x3-x1
YY2 = y3-y1
ZZ2 = z3-z1

ИТАК ВОТ ПРАВИЛ&#1068;НЫЙ ОТВЕТ еще раз:
n[(y2-y1)(z3-z1)-(y3-y1)(z2-z1) ; (x2-x1)(z3-z1)-(x3-x1)(z2-z1) ; (x2-x1)(y3-y1)-(x3-x1)(y2-y1) ]
А ветор нормали у тебя нулевой,т.к. все три точки лежат на одной прямой,т.е плоскости так сказать не существует(закреплённой),а "изменить вектор,нормали" можно лишь поменяв точки и не допустив,совпадения между ними,и сделать проверку на принадлежённость одной прямой проходящей через них.
Post #: 8
Расчёт нормали - 2006-01-20 07:49:01   
hladon

Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
Ничуть не спорю с тем что ты математик:)Просто я очень смутно знаю что такое матрица, её определитель и т.д. Вот и завёл тему…
Да кстати точки у меня такие : v1[0;0;0] v2[1;0;0] v3[0;0;1].
Вроде как не совсем на одной прямой(Если я правильно тебя понял, конечно).
Post #: 9
Расчёт нормали - 2006-01-20 09:55:19   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

—————-<BR>Цитата: Дата:19.01.2006 23:00:21, Автор:The GumAnoiD ::
Итак HION,я математик,я тебе дал абсолютно правильное решение,и ответ там абсолютно правильный.<BR><BR><BR>Ответ rgo<BR>…<BR>Ты сам танк,твой вариант не верный т.к. ты не указал что x1,y1,z1 и x2,y2,z2 это не координаты данных точек,а координаты векторов,проведенных из одной,из тех 3х данных точек,к двум остальным точкам!!!<BR>…<BR>
—————-


слыш, математик, у тебя сколько классов образования?

2NION
ну и? в чём проблема? возьми любой учебник по анал геометрии (в любой библиотеке, если хочешь могу Погорелова в электронном виде скинуть), там тебе объяснят как определители считать. И заодно, что есть векторное произведение.
Post #: 10
Расчёт нормали - 2006-01-20 18:27:42   
MrBlack

Сообщений: 268
Оценки: 0
Присоединился: 2004-05-24 00:02:27
quote:

—————-<BR>Да кстати точки у меня такие : v1[0;0;0] v2[1;0;0] v3[0;0;1].<BR>
—————-



Что же ты молчал? Нормаль тогда [0,1,0]
Post #: 11
Расчёт нормали - 2006-01-21 07:34:19   
hladon

Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
блин три раза по формуле ГумАноиДа пересчитывал-и всё равно [0;0;0]
либо я большой негуманоидный глюк:)…
либо я даже и не знаю…хотя [0;0;0] тоже верно для такой пл. только нельзя ммне так:( -иначе при расчёте угла у меня division by zero будет
Post #: 12
Расчёт нормали - 2006-01-21 22:16:27   
3xIProiD

Сообщений: 11
Оценки: 0
Присоединился: 2006-01-18 02:12:30
rgo
Во первых тебя не ебёт сколько у меня классов образования.
Во вторых не классов,а курсов уж тогда.
В третьих если всё таки ебёт…,то постучи мне в асю и не кричи на форум,там всё культурно обсудим.

HION
Смотри я считаю по своей формуле,которую я тебе дал:
n[(y2-y1)(z3-z1)-(y3-y1)(z2-z1);(x2-x1)(z3-z1)-(x3-x1)(z2-z1);(x2-x1)(y3-y1)-(x3-x1)(y2-y1)]
Для точек
v1[0;0;0] v2[1;0;0] v3[0;0;1]

x1=0;x2=1;x3=0;
y1=0;y2=0;y3=0;
z1=0;z2=0;z3=1;

Считаю:
n[(0-0)(1-0)-(0-0)(0-0);(1-0)(1-0)-(0-0)(0-0);(1-0)(0-0)-(0-0)(0-0)]=
=[0*1-0;1-0;1*0-0]=[0;1;0]
И получаем ответ [0;1;0]
Не хочу никого обсирать,но если формулой готовой пользоваться не умеем,то это просто &quot;задница&quot;,обращаться к учителям которые вас учили в первом или во втором классе.

P.S. если у кого-нить есть какие-либо просьбы по выполнению курсовых,типовых и пр. по матке и информатике,то пишите мне на мыло Dtcom@mail.ru,срок выполнения 1-2 дня за ненбольшую плату от 5wmz.
Post #: 13
Расчёт нормали - 2006-01-21 22:29:18   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
quote:

—————-<BR>Цитата: Дата:21.01.2006 22:16:27, Автор:The GumAnoiD ::
rgo <BR><BR>Во первых тебя не ебёт сколько у меня классов образования.<BR><BR>Во вторых не классов,а курсов уж тогда.<BR><BR>В третьих если всё таки ебёт…,то постучи мне в асю и не кричи на форум,там всё культурно обсудим.<BR><BR><BR>
—————-


The GumAnoiD - во-первых, выяснение отношений - в ЛС
Во-вторых, еще один мат - и бан.
Post #: 14
Расчёт нормали - 2006-01-21 22:46:33   
3xIProiD

Сообщений: 11
Оценки: 0
Присоединился: 2006-01-18 02:12:30
Lex_Voodoo молодец что быстро засёк не соответствие с "регламентом" форума(я про мат),извини,это как бы случайно получилось,так что следующего раза не будет.
Но в принципе проксики найти я себе в любом случае могу,либо просто от инета отсоединиться и подключиться,куки почистить без проблем,мыло могу другое дать и новую сделать регистрацию,не знаю проверяется ли у вас id браузера,
но лучше конечно чтоб без этого геморроя,я тебя понял,ты надеюсь меня,поэтому на этом я закругляюсь.
Post #: 15
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Расчёт нормали







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.