Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.12.2013, 22:25
HorusWM вне форума Посмотреть профиль Отправить личное сообщение для HorusWM Найти все сообщения от HorusWM
  № 1  
Ответить с цитированием
HorusWM

Регистрация: Sep 2010
Сообщений: 90
Т.е., я могу взять любые 3 точки из 4х или это должны быть какие-то иные точки? Вообще, теории, конечно, уже начитался, кроссы и доты расписаны давно, проблема именно с уравнением плоскости и нормалью - по идее, достаточно ее одной и луча, для определения пересечения, но то ли у меня лыжи не едут, то ли неверно беру нормаль: у меня все плоскости образуют коробки, т.е., 2 компоненты нормали каждой стороны, по идее, должны быть равны нулю, а 3я 1 или -1, но так вычисления выходят неверны.

UPD. Все правильно было, я не поставил возврат значения и луч улетал в деревню дедушки, продолжая считать)
вот, если кому пригодится:
Код AS3:
// tested_direction кэширован заранее шоп копий не плодить
// p1 - одна из точек плоскости
// start начальная точка луча
tested_direction.x = p1.x - start.x;
tested_direction.y = p1.y - start.y;
tested_direction.z = p1.z - start.z;
 
// коэффициент приближения к плоскости
// если k > 1, значит луч не пересекает плоскость, если меньше, значит находится в одном полупространстве с ней
// trace_direction - вектор луча					
var k:Number = tested_direction.Dot(normal) / trace_direction.Dot(normal);
 
// точка на плоскости	
trace_point.x = start.x +trace_direction.x *k;
trace_point.y = start.y +trace_direction.y *k;
trace_point.z = start.z +trace_direction.z *k;


Последний раз редактировалось dimarik; 25.12.2013 в 23:27. Причина: зачеркивания глаз режут.
Создать новую тему Ответ Часовой пояс GMT +4, время: 21:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.