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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.02.2011, 01:17
NumpuT вне форума Посмотреть профиль Отправить личное сообщение для NumpuT Найти все сообщения от NumpuT
  № 11  
Ответить с цитированием
NumpuT

Регистрация: Dec 2009
Сообщений: 45
Вот код
Код AS3:
for( ... ) {
					_materials.push( materials[i] );
					var curWidthY:Number = materials[i].sourceRect.height / 2;
					var curHeightX:Number = materials[i].sourceRect.width / 2;					
					var tmpSize:Number = int(( materials[i].sourceRect.width * materials[i].sourceRect.height ) / ( materials[i].sourceRect.width + materials[i].sourceRect.height ));
					var vertices:Vector.<Number>;
					vertices = Vector.<Number>([ -curHeightX, -curWidthY, -curHeightX, curWidthY, curHeightX, curWidthY, curHeightX, -curWidthY]);
					var rot:Vector3D = FACES_ORIENTATION[i].clone( );
					rot.negate( );
					var pos:Vector3D = FACES_POSITION[i].clone( );
					pos.scaleBy( tmpSize );
 
 
					var mtrx:Matrix3D = new Matrix3D( );
					mtrx.prependRotation( rot.x, Vector3D.X_AXIS);
					mtrx.prependRotation( rot.y, Vector3D.Y_AXIS);
					mtrx.prependRotation( rot.z, Vector3D.Z_AXIS);
					mtrx.appendTranslation( pos.x, pos.y, pos.z );
					createPolygonFace( vertices, mtrx, materials[i] );
 
				}
Код AS3:
public function createPolygonFace( vertices:Vector.<Number>, faceMatrix:Matrix3D, material2Use:Material ):void {
 
			var face:Face = new Face( material2Use, vertices, Vector.<int>([0, 1, 2, 0, 2, 3]), Vector.<Number>([ 0, 0, 0, 1, 1, 1, 1, 0 ]) );
 
			var dir:Number = (vertices[2] - vertices[0]) * (vertices[5] - vertices[3]) - (vertices[3] - vertices[1]) * (vertices[4] - vertices[2]);
 
			face.inside = dir > 0 ? !_inside : _inside;
 
			face.transform.matrix3D = faceMatrix;
 
			addFace( face );
 
		}
Код AS3:
private function SetFacePostion( materials:Vector.<Material> ) : Boolean {
			if ( materials.length != 6 ) return false;
			var w0:Number = materials[0].sourceRect.width
			var w1:Number = materials[1].sourceRect.width
			var w2:Number = materials[2].sourceRect.width
			var w3:Number = materials[3].sourceRect.width
			var w4:Number = materials[4].sourceRect.width
			var w5:Number = materials[5].sourceRect.width
			var h0:Number = materials[0].sourceRect.height
			var h1:Number = materials[1].sourceRect.height
			var h2:Number = materials[2].sourceRect.height
			var h3:Number = materials[3].sourceRect.height
			var h4:Number = materials[4].sourceRect.height
			var h5:Number = materials[5].sourceRect.height
			//if ( w0 != w2 || w1 != h2 || h0 != h1 ) return false;
// вот здесь я задаю кооэфициенты но мне нужно их точно определить я не знаю как
			var dz:Number = 1.65; //*/ h4 / 100
			var dy:Number = 0.6; //*/ h0 / 100;
			var dx:Number = 1.1; //*/ w0 / 100;
			FACES_POSITION[0].z = -dz;
			FACES_POSITION[2].z = dz;
			FACES_POSITION[1].x = dx;
			FACES_POSITION[3].x = -dx;
			FACES_POSITION[4].y = dy;
			FACES_POSITION[5].y = -dy;
			return true;
		}
Добавлено через 16 часов 15 минут
Я так понял что надо копать где-то в Эйлеровых графах?

Старый 10.02.2011, 19:20
NumpuT вне форума Посмотреть профиль Отправить личное сообщение для NumpuT Найти все сообщения от NumpuT
  № 12  
Ответить с цитированием
NumpuT

Регистрация: Dec 2009
Сообщений: 45
Сборище тинейджеров, которые тыкают в друг-друга пальцами и отвечают на вопросы типа сколько будет 1+1. ГЫ-ГЫ.

Старый 10.02.2011, 20:06
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 13  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Сообщение от NumpuT Посмотреть сообщение
Сборище тинейджеров, которые тыкают в друг-друга пальцами и отвечают на вопросы типа сколько будет 1+1. ГЫ-ГЫ.
Это Вы о ком?

Старый 10.02.2011, 20:22
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 14  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
обычное решение треугольников.
проецируете ваш центр на одну из сторон призмы. рисуете гипотинузу(Димарик, не бей ногами, забыл как это слово пишется)). она будет одним из катетов треугольника, который получается из нее, расстояния от точки(проекции на сторону) до центра (это будет второй катет, потому как проецировали по нормали к стороне) и вычисляем расстояние от центра до вершины. тоже гипотинуза

это если нам надо было найти это расстояние.
коэффициенты - это я не знаю что такое, но найти можно путем деления найденных размерностей на другие размерности.)
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 10.02.2011, 21:34
Anton Riot вне форума Посмотреть профиль Отправить личное сообщение для Anton Riot Посетить домашнюю страницу Anton Riot Найти все сообщения от Anton Riot
  № 15  
Ответить с цитированием
Anton Riot

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 291
Отправить сообщение для Anton Riot с помощью ICQ
Цитата:
Сообщение от NumpuT Посмотреть сообщение
Я так понял что надо копать где-то в Эйлеровых графах?
Копайте в школьном учебнике по геометрии.

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

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

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


 


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


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