Расчёт нормали
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Расчёт нормали - 2006-01-17 19:48:50
|
|
|
hladon
Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
|
Объясните, если кто знает, как посчитать координаты вектора-нормали к плоскости по заданным трём точкам, лежащим на этой плоскости.(с заданной стороны от плоскости)
|
|
|
Расчёт нормали - 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
|
|
|
Расчёт нормали - 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]
|
|
|
Расчёт нормали - 2006-01-18 07:33:22
|
|
|
hladon
Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
|
VERY VERY BIG THANKS!!![sm=sm203.gif]
|
|
|
Расчёт нормали - 2006-01-18 08:58:13
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
какие сложные рассуждения… можно ж гораздно проще, опираясь на тот факт, что векторное произведение даёт вектор перпендикулярный обоим множителям.
|
|
|
Расчёт нормали - 2006-01-19 12:15:12
|
|
|
hladon
Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
|
и всё бы хорошго да вот одна проблема - в большинстве случаев нормаль такая n[0,0,0]-можт кто нить знает как избежать этого[sm=15.gif]
|
|
|
Расчёт нормали - 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.
|
|
|
Расчёт нормали - 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
ИТАК ВОТ ПРАВИЛЬНЫЙ ОТВЕТ еще раз: 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) ] А ветор нормали у тебя нулевой,т.к. все три точки лежат на одной прямой,т.е плоскости так сказать не существует(закреплённой),а "изменить вектор,нормали" можно лишь поменяв точки и не допустив,совпадения между ними,и сделать проверку на принадлежённость одной прямой проходящей через них.
|
|
|
Расчёт нормали - 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]. Вроде как не совсем на одной прямой(Если я правильно тебя понял, конечно).
|
|
|
Расчёт нормали - 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 ну и? в чём проблема? возьми любой учебник по анал геометрии (в любой библиотеке, если хочешь могу Погорелова в электронном виде скинуть), там тебе объяснят как определители считать. И заодно, что есть векторное произведение.
|
|
|
Расчёт нормали - 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]
|
|
|
Расчёт нормали - 2006-01-21 07:34:19
|
|
|
hladon
Сообщений: 334
Оценки: 0
Присоединился: 2005-12-29 07:46:40
|
блин три раза по формуле ГумАноиДа пересчитывал-и всё равно [0;0;0] либо я большой негуманоидный глюк:)… либо я даже и не знаю…хотя [0;0;0] тоже верно для такой пл. только нельзя ммне так:( -иначе при расчёте угла у меня division by zero будет
|
|
|
Расчёт нормали - 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] Не хочу никого обсирать,но если формулой готовой пользоваться не умеем,то это просто "задница",обращаться к учителям которые вас учили в первом или во втором классе.
P.S. если у кого-нить есть какие-либо просьбы по выполнению курсовых,типовых и пр. по матке и информатике,то пишите мне на мыло Dtcom@mail.ru,срок выполнения 1-2 дня за ненбольшую плату от 5wmz.
|
|
|
Расчёт нормали - 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 - во-первых, выяснение отношений - в ЛС Во-вторых, еще один мат - и бан.
|
|
|
Расчёт нормали - 2006-01-21 22:46:33
|
|
|
3xIProiD
Сообщений: 11
Оценки: 0
Присоединился: 2006-01-18 02:12:30
|
Lex_Voodoo молодец что быстро засёк не соответствие с "регламентом" форума(я про мат),извини,это как бы случайно получилось,так что следующего раза не будет. Но в принципе проксики найти я себе в любом случае могу,либо просто от инета отсоединиться и подключиться,куки почистить без проблем,мыло могу другое дать и новую сделать регистрацию,не знаю проверяется ли у вас id браузера, но лучше конечно чтоб без этого геморроя,я тебя понял,ты надеюсь меня,поэтому на этом я закругляюсь.
|
|
|
|
|