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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.07.2006, 17:10
G.W.M вне форума Посмотреть профиль Отправить личное сообщение для G.W.M Посетить домашнюю страницу G.W.M Найти все сообщения от G.W.M
  № 1  
Ответить с цитированием
G.W.M

Регистрация: Jan 2000
Адрес: израил
Сообщений: 116
Отправить сообщение для G.W.M с помощью ICQ
По умолчанию Matrix Transform так же как в флеше

в флеше есть Align&Info&Transform так вот в Trasnform есть много хороших параметров как мне их вычислит имея matrix обекта?
__________________
зарание на ашыбки не сматрет 11 лет как неписал на руска...
зайдите на сайт паиграт в игрй может время будет новйе закину

Старый 27.07.2006, 19:04
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Читаем про .c и .d параметры в хелпе.

Старый 27.07.2006, 19:34
G.W.M вне форума Посмотреть профиль Отправить личное сообщение для G.W.M Посетить домашнюю страницу G.W.M Найти все сообщения от G.W.M
  № 3  
Ответить с цитированием
G.W.M

Регистрация: Jan 2000
Адрес: израил
Сообщений: 116
Отправить сообщение для G.W.M с помощью ICQ
а ты возми и попробуй.
недостаточна проста исползавать .c .d нужна как то еще с шириной и высотой вычислять я уже давно спрашивал как узнать угол разворота объекта с matrix так некто и не ответил...

вот тут я использую matrix и так не нашол ответа...
перепробовал немало возможных вариантов

http://www40.brinkster.com/ninja4ere...tor/index.html
__________________
зарание на ашыбки не сматрет 11 лет как неписал на руска...
зайдите на сайт паиграт в игрй может время будет новйе закину

Старый 27.07.2006, 19:38
styx вне форума Посмотреть профиль Отправить личное сообщение для styx Найти все сообщения от styx
  № 4  
Ответить с цитированием
styx

Регистрация: Apr 2003
Сообщений: 243
Насколько я представляю себе матричные преобразования, в общем случае эта задача решения не имеет.

Старый 27.07.2006, 19:43
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
styx, у Iv-а есть SkewedMovieClip, где нормальные _xskew, _yskew

Код:
/*
© 2002 - 2004, Ivan Dembicki, ivan@dembicki.org, dembicki@narod.ru
please check updates: http://www.dembicki.org

SkewedMovieClip class
version 1.0 
last update: October 2, 2005

Usage example is below the class code.
*/
import flash.geom.Transform;
import flash.geom.Point;
class org.dembicki.SkewedMovieClip extends MovieClip {
	private var skew_transformation_center:Object;
	function SkewedMovieClip() {
		this.setSkewTransformationCenter();
	}
	public function setSkewTransformationCenter(x, y):Object {
		var point = new flash.geom.Transform(this).matrix.deltaTransformPoint(new flash.geom.Point(x || 0, y || 0));
		this.skew_transformation_center = {x:x || 0, y:y || 0, xbase:this._x+point.x, ybase:this._y+point.y};
		return this.skew_transformation_center;
	}
	public function removeSkew() {
		var trans = new flash.geom.Transform(this);
		var matrix = trans.matrix;
		matrix.a = matrix.d=1;
		matrix.b = matrix.c=0;
		trans.matrix = matrix;
		if (this.skew_transformation_center) {
			this.applySkewTransformationCenter();
			delete this.skew_transformation_center;
		}
	}
	public function setSkew(xskew, yskew) {
		var trans = new flash.geom.Transform(this);
		var matrix = trans.matrix;
		matrix.a = isNaN(yskew) ? matrix.a : Math.cos(yskew);
		matrix.b = isNaN(yskew) ? matrix.b : Math.sin(yskew);
		matrix.c = isNaN(xskew) ? matrix.c : -Math.sin(xskew);
		matrix.d = isNaN(xskew) ? matrix.d : Math.cos(xskew);
		trans.matrix = matrix;
		this.applySkewTransformationCenter();
	}
	// _xskew
	public function get _xskew():Number {
		var matrix = new flash.geom.Transform(this).matrix;
		return Math.acos(matrix.d)*(matrix.c>0 ? -1 : 1);
	}
	public function set _xskew(xskew:Number) {
		if (!this.skew_transformation_center) {
			this.setSkewTransformationCenter();
		}
		var trans = new flash.geom.Transform(this);
		var matrix = trans.matrix;
		matrix.c = -Math.sin(xskew);
		matrix.d = Math.cos(xskew);
		trans.matrix = matrix;
		this.applySkewTransformationCenter();
	}
	// _yskew
	public function get _yskew():Number {
		var matrix = new flash.geom.Transform(this).matrix;
		return Math.acos(matrix.a)*(matrix.b>0 ? 1 : -1);
	}
	public function set _yskew(yskew:Number) {
		if (!this.skew_transformation_center) {
			this.setSkewTransformationCenter();
		}
		var trans = new flash.geom.Transform(this);
		var matrix = trans.matrix;
		matrix.a = Math.cos(yskew);
		matrix.b = Math.sin(yskew);
		trans.matrix = matrix;
		this.applySkewTransformationCenter();
	}
	// PRIVATE
	private function applySkewTransformationCenter() {
		var obj = this.skew_transformation_center;
		var trans = new flash.geom.Transform(this);
		var matrix = trans.matrix;
		var pt = matrix.deltaTransformPoint(new flash.geom.Point(obj.x, obj.y));
		matrix.tx = obj.xbase-pt.x;
		matrix.ty = obj.ybase-pt.y;
		trans.matrix = matrix;
	}
}
// USAGE EXAMPLE
/* 
import org.dembicki.SkewedMovieClip;
this.createEmptyMovieClip("skewed_mc", 0);
// set inheritance
this.skewed_mc.__proto__ = org.dembicki.SkewedMovieClip.prototype;
// triangle drawing 
this.skewed_mc.beginFill(0, 90);
this.skewed_mc.lineTo(100, 0);
this.skewed_mc.lineTo(100, 100);
this.skewed_mc.endFill();
// pozition
this.skewed_mc._x = 200;
this.skewed_mc._y = 100;
// set transformation center sight
this.skewed_mc.createEmptyMovieClip("pt_center_mc", 0);
this.skewed_mc.pt_center_mc.lineStyle(0, 0xFF00FF, 100);
this.skewed_mc.pt_center_mc.moveTo(-10, 0);
this.skewed_mc.pt_center_mc.lineTo(10, 0);
this.skewed_mc.pt_center_mc.moveTo(0, -10);
this.skewed_mc.pt_center_mc.lineTo(0, 10);
// set skew animation 
this.setEnterFrame = function() {
	var step_angle = 1;
	var step = step_angle*(Math.PI/180);
	this.skewed_mc.onEnterFrame = function() {
		this._yskew += step;
		this._xskew += step*.5;
	};
};
// set change transformation senter
this.skewed_mc.onMouseUp = function() {
	if (!this.enterFrame) {
		this._parent.setEnterFrame();
	}
	this.setSkewTransformationCenter(this._xmouse, this._ymouse);
	this.pt_center_mc._x = this._xmouse;
	this.pt_center_mc._y = this._ymouse;
};
// remove skew
Key.addListener(this);
this.onKeyUp = function() {
	if (Key.getCode() == Key.SPACE) {
		delete this.skewed_mc.onEnterFrame;
		this.skewed_mc.removeSkew();
	}
};
*/
Как видно, задача вполне решаемая в общем случае.

Старый 27.07.2006, 21:22
G.W.M вне форума Посмотреть профиль Отправить личное сообщение для G.W.M Посетить домашнюю страницу G.W.M Найти все сообщения от G.W.M
  № 6  
Ответить с цитированием
G.W.M

Регистрация: Jan 2000
Адрес: израил
Сообщений: 116
Отправить сообщение для G.W.M с помощью ICQ
большое спасибо за код сейчас буду разберется...
__________________
зарание на ашыбки не сматрет 11 лет как неписал на руска...
зайдите на сайт паиграт в игрй может время будет новйе закину

Старый 27.07.2006, 21:25
G.W.M вне форума Посмотреть профиль Отправить личное сообщение для G.W.M Посетить домашнюю страницу G.W.M Найти все сообщения от G.W.M
  № 7  
Ответить с цитированием
G.W.M

Регистрация: Jan 2000
Адрес: израил
Сообщений: 116
Отправить сообщение для G.W.M с помощью ICQ
еще один вопрос
ест concatenatedMatrix касторы как localToGlobal
а вот мне нужна globalToLocal к Matrix...
...
спрашивал не раз но так некто и не ответил...
__________________
зарание на ашыбки не сматрет 11 лет как неписал на руска...
зайдите на сайт паиграт в игрй может время будет новйе закину

Старый 27.07.2006, 22:59
G.W.M вне форума Посмотреть профиль Отправить личное сообщение для G.W.M Посетить домашнюю страницу G.W.M Найти все сообщения от G.W.M
  № 8  
Ответить с цитированием
G.W.M

Регистрация: Jan 2000
Адрес: израил
Сообщений: 116
Отправить сообщение для G.W.M с помощью ICQ
всо хорошо и красиво с этим кодам но до меня так и не дошло как можна добиться параметром такие же как показывает флеш в info
__________________
зарание на ашыбки не сматрет 11 лет как неписал на руска...
зайдите на сайт паиграт в игрй может время будет новйе закину

Старый 27.07.2006, 23:13
D12 вне форума Посмотреть профиль Отправить личное сообщение для D12 Найти все сообщения от D12
  № 9  
Ответить с цитированием
D12
меценат
 
Аватар для D12

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
http://www.senocular.com/flash/tutor...ansformmatrix/

P.S. 2G.W.M Незабывай расти =)
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники

Старый 27.07.2006, 23:24
G.W.M вне форума Посмотреть профиль Отправить личное сообщение для G.W.M Посетить домашнюю страницу G.W.M Найти все сообщения от G.W.M
  № 10  
Ответить с цитированием
G.W.M

Регистрация: Jan 2000
Адрес: израил
Сообщений: 116
Отправить сообщение для G.W.M с помощью ICQ
D12 спасибо я с это во tutorial и начинать ....
я там и научился как работат с matrix и про
concatenatedMatrix но я так и неврубился ...

возьми заделай квадрат в flash по крути его поиграйся с skew а потом попробуй вычислит таки еже параметры что показывает флеш в Info
__________________
зарание на ашыбки не сматрет 11 лет как неписал на руска...
зайдите на сайт паиграт в игрй может время будет новйе закину

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

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

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


 


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


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