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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
По умолчанию Away3d. Отрисовка траекторий орбит планет

Приветствую.
Мне нужно как-то отобразить линии орбит, примерно как тут http://www.solarsystemscope.com/
Имеются в виду тонкие линии кругов.
Что пришло в голову:
- заранее смоделировать в 3д редакторе - не подходит, так как орбиты могут быть совершенно разными.
- растягивать одну 3д модель - она перестанет быть тонкой линией.
- сделать линии из маленьких шаров - это совсем глупость.
Подскажите адекватное решение задачи.

Старый 07.03.2013, 21:00
vorodis2 вне форума Посмотреть профиль Отправить личное сообщение для vorodis2 Найти все сообщения от vorodis2
  № 2  
Ответить с цитированием
vorodis2

Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
1.
Код AS3:
private var segmentSet:SegmentSet;
private var segment:LineSegment;
........................
segment = new LineSegment(v0, v1, color, color, thickness); //рисуем линию между ними
segmentSetPoint.addSegment(segment);
2.
Создать новый меш либо заменит геометрию старого.

Но 1-2 Дадут ребь.
3. В демках от айвей есть работа с партиклями Basic_Fire.as, навероно как то ими нужно создавать, я их не трогал, может и туплю.

А Вы случием не знаете как там из 3Д точки получить 2д точку.

Старый 07.03.2013, 23:38
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 3  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
3d круга вроде нету в away, остается вариант LineSegment, посмотри исходники класса WireframeSphere

Старый 08.03.2013, 01:25
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 4  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Спасибо за советы, сегменты - отличная идея.

Старый 11.03.2013, 19:26
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 5  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
После "доработки" класса WireframeCylinder, получилось вот такой код, может кому пригодится:

Код AS3:
package {
 
	import away3d.primitives.WireframePrimitiveBase;
	import flash.geom.Vector3D;
 
	public class Circle3D extends WireframePrimitiveBase {
 
		private var radius:Number;
		private var segments:uint;
 
		public function Circle3D(radius:Number = 50, segments:uint = 16, color:uint = 0xFFFFFF) {
			super(color, 1);
			this.radius = radius;
			this.segments = segments;
		}
 
		override protected function buildGeometry():void {
 
			var revolutionAngle:Number;
			var revolutionAngleDelta:Number = 2 * Math.PI / segments;
			var nextVertexIndex:int = 0;
			var x:Number;
			var y:Number;
			var previousV:Vector3D = null;
 
			for (var i:int = 0; i <= segments; ++i) {
				revolutionAngle = i * revolutionAngleDelta;
				x = radius * Math.cos(revolutionAngle);
				y = radius * Math.sin(revolutionAngle);
				var vertex:Vector3D;
				if (previousV) {
					vertex = new Vector3D(x, 0, y);
					updateOrAddSegment(nextVertexIndex++, vertex, previousV);
					previousV = vertex;
				} else {
					previousV = new Vector3D(x, 0, y);
				}
			}
		}
 
	}
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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