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

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

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

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
По умолчанию as3isolib разве нельзя повернуть IsoBox на нужный угол не переписывая половину двига

Здравствуйте
Допустим, нужно повернуть этот бокс на 15 градусов
Дописываю в as3isolib.display.primitive.IsoBox в override protected function drawGeometry ()
_rotation=45 градусов
Код AS3:
var g:Graphics = mainContainer.graphics;
g.clear();
 
var lbb:Pt;
var rbb:Pt;
var rfb:Pt;
var lfb:Pt;
 
var lbt:Pt;
var rbt:Pt;
var rft:Pt;
var lft:Pt;
 
//all pts are named in following order "x", "y", "z" via rfb = right, front, bottom
 
lbb = IsoMath.isoToScreen(new Pt(0, 0, 0));
 
// если есть вращение - пересчитать нужно координаты точек тут
// меня смуило что в координатах есть имя width и length
if(_rotation!=0)
{
	// пересчет координат взависимости от вращения
	var _rotatedCoord:Point;
	_rotatedCoord=Math2.vector(length,Math2.degreesToRadians(_rotation));		
	trace("\n ROTATED: _rotatedCoord="+_rotatedCoord+" width="+width+" height="+height+" length="+length);
	rbb = IsoMath.isoToScreen(new Pt(_rotatedCoord.x, 0, 0));
	rfb = IsoMath.isoToScreen(new Pt(_rotatedCoord.x, _rotatedCoord.y, 0));
	lfb = IsoMath.isoToScreen(new Pt(0, _rotatedCoord.y, 0));
	lbt = IsoMath.isoToScreen(new Pt(0, 0, _rotatedCoord.y));
	rbt = IsoMath.isoToScreen(new Pt(_rotatedCoord.x, 0, _rotatedCoord.y));
	rft = IsoMath.isoToScreen(new Pt(_rotatedCoord.x, _rotatedCoord.y, _rotatedCoord.y));			
	lft = IsoMath.isoToScreen(new Pt(0, _rotatedCoord.y, _rotatedCoord.y));
}
else
{
	trace("UNROTATED: "+width);
	rbb = IsoMath.isoToScreen(new Pt(width, 0, 0));
	rfb = IsoMath.isoToScreen(new Pt(width, length, 0));
	lfb = IsoMath.isoToScreen(new Pt(0, length, 0));
 
	lbt = IsoMath.isoToScreen(new Pt(0, 0, height));
	rbt = IsoMath.isoToScreen(new Pt(width, 0, height));
	rft = IsoMath.isoToScreen(new Pt(width, length, height));
	lft = IsoMath.isoToScreen(new Pt(0, length, height));
}
даже намека на поворот нет, но координаты же пересчитываю в зависимости от поворота
Вот этот большущий куб (на первом скрине) должен быть стеной, такой же тонкости как и остальные, и эта неудавшаяся стена должна повернута быть на 45 градусов
Вот код
Код AS3:
var rotatedBox:IsoBox=new IsoBox();
rotatedBox.setSize(2, 108, _wallHeight);
rotatedBox.rotation=45;
rotatedBox.moveTo(270, 144, -2);
rotatedBox.fills = _boxFills;
rotatedBox.strokes=_boxStrokes;
Елки, может, действительно, нужно пользовать papervision или away, но мне вообще не нужна z координата, по идее (достаточно 2.5D). Но не крутятся же, примитивы, собаки

Задача у меня наложить на рендер здания (сделаный в 3D Studio) интерактивные полы, раскрашеные програмно (заняты помещения или не заняты), добавить мышиную интерактивность к этим полам
Отрисовать програмно стены, если помещение занято, отрисовать крышу с картинкой логотипа хозяина.
НООО, главное условие - минимализация нагрузки на процессор
Рендер (картинка здания) и вся конструкция флешевая таскается мышкой, нет облетов камерой и тому подобных прибамбасов трехмертных.

Где она - золотая середина ?
Изображения
   


Последний раз редактировалось djyamato; 21.12.2011 в 07:17.
Старый 21.12.2011, 10:36
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 2  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Цитата:
rotatedBox.rotation=45;
Этот сеттер переопределен? Он устанавливает значение _rotation? А вызов метода DrawGeometry при этом происходит? А то у меня такое подозрение, что он либо вызывается единожды из конструктора, и после установки rotation не меняется, либо же не меняется значение _rotation.

Старый 21.12.2011, 18:09
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 3  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
В смысле, переопределен ? У IsoBox нет rotation вообще, так что переопределять нечего
Изменение _rotation устанавливает, пересчет координат и отрисовка происходит
Вот трэйс
Код:
ROTATED: _rotated 2nd Coord=(x=76.36753236814714, y=76.36753236814712) width=2 height=16 length=108
lbb=x:0 y:0 z:0
rbb=x:76.36753236814714 y:38.18376618407357 z:0
rfb=x:1.4210854715202004e-14 y:76.36753236814712 z:0
lfb=x:-76.36753236814712 y:38.18376618407356 z:0
lbt=x:0 y:-76.36753236814712 z:76.36753236814712
rbt=x:76.36753236814714 y:-38.183766184073555 z:76.36753236814712
rft=x:1.4210854715202004e-14 y:0 z:76.36753236814712
lft=x:-76.36753236814712 y:-38.18376618407356 z:76.36753236814712

Старый 21.12.2011, 19:18
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
IsoLib Изометрический движок.
Изометрическая проекция обладает рядом особенностей упрощающих и оптимизирующих код.
А что мешает вам делать рендер в чисто изометрической проекции?
Да и вопрос то не про то.
вы просто задали кубу неверные значения высота-ширина-длина
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 21.12.2011 в 19:20.
Старый 21.12.2011, 22:36
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 5  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
Цитата:
Сообщение от Котяра Посмотреть сообщение
А что мешает вам делать рендер в чисто изометрической проекции?
Рендеры предоставляются

Цитата:
Сообщение от Котяра Посмотреть сообщение
вы просто задали кубу неверные значения высота-ширина-длина
Да я разные пробовал

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

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

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


 


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


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