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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.03.2009, 14:20
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 1  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
По умолчанию Как поставить грань по трем точкам используя углы rotationX...?

Сделал 3 точки
Код:
vecA = new Vector3D(0, 0, 0);
vecB = new Vector3D(100, 100, 200);
vecC = new Vector3D(100, 300, 0);
Расчитал треугольник по этим точкам, как бы, если бы все его точки лежали на одной плоскости, теперь надо развернуть эту плоскость используя (rotationX, rotationY, rotationZ) так, что-бы точки образующие треугольник совпали с теми реальными точками, которые проецирует flash 10.

В обще как имея три точки пространства можно получть углы вращения плоскости, что-бы плоскость легла на эти три точки?
углы то я знаю, слайдером накрутил 191, 21, 37

Как их получить??? Точка вращения vecA.
Вложения
Тип файла: rar faculator.rar (48.4 Кб, 54 просмотров)


Последний раз редактировалось Alex Lexcuk; 13.03.2009 в 14:23.
Старый 13.03.2009, 16:31
romanoflash вне форума Посмотреть профиль Отправить личное сообщение для romanoflash Найти все сообщения от romanoflash
  № 2  
Ответить с цитированием
romanoflash

Регистрация: Mar 2009
Сообщений: 1
Может это поможет: http://ru.wikipedia.org/wiki/Сферические_координаты
__________________
Romano: Flash Developer
http://www.romano.su

Старый 13.03.2009, 17:36
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 3  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Спасибо материал отличный, как раз про позиционирование углами.
Кто исходничек смотрел, там ошибка, вот так лучше работает
Код:
			//нахождение угла сab
			var cab:Number;
			cab = Math.asin(aa/ab)* (180/Math.PI)-90;
Не было -90 (определил методом тыка).
Кстати если ротация состоит из одного угла например
Код:
			vecA = new Vector3D(0, 0, 0);
			vecB = new Vector3D(400, 0, 370);//если b 
			vecC = new Vector3D(0, 350, 0);
То определить углы очень легко
Код:
			var calcRotationZ:Number =Vector3D.angleBetween(new Vector3D(pB.x, pB.y, 0), vecB) * 180 / Math.PI;
			
			trace("calcRotationZ "+calcRotationZ);
			
			facTriaSp.rotationY = -calcRotationZ;
естественно rotationX = 0 и rotationZ = 0;

Вместо чисел 400 и 370 можно ставить любые цифры и углы всегда сходяться, хм... прогресс


Последний раз редактировалось Alex Lexcuk; 13.03.2009 в 17:39.
Создать новую тему Ответ Часовой пояс GMT +4, время: 20:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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