
Код:
package {
import flash.geom.*;
import __AS3__.vec.*;
import flash.display.*;
import flash.events.*;
public class Main extends MovieClip {
private var pointS:Vector.<Vector3D>,
mat3D:Matrix3D,
myPivotPoint:Vector3D,
i:int;
public function Main() {
x = 200;
y = 200;
pointS = new Vector.<Vector3D>();
pointS[0] = new Vector3D( 0, 0, 0);
pointS[1] = new Vector3D( 100, 0, 0);
pointS[2] = new Vector3D( 100, 100, 0);
pointS[3] = new Vector3D( 0, 100, 0);
mat3D = new Matrix3D();
myPivotPoint = new Vector3D( 50, -50, 0);
mat3D.appendRotation(1, new Vector3D(0,0,3),myPivotPoint);
addEventListener(Event.ENTER_FRAME, enterFrameFunc);
}
private function enterFrameFunc(evt:Event):void {
setGr();
for (i = 0; i < 4; i++) {
pointS[i]=mat3D.transformVector(pointS[i]);
showPoint(pointS[i]);
}
}
private function showPoint(_v:Vector3D):void {
graphics.drawCircle(_v.x, _v.y, 5);
}
private function setGr():void {
graphics.clear();
graphics.beginFill(0);
}
}
}
После немногочисленных экспериментов pivotPoint заработала, но как-то странно, точки начинают медленно приближаться и квадрат увеличивается в размерах спустя некотрое время.
если поствавить

Код:
mat3D.appendRotation(1, new Vector3D(0,0,2),myPivotPoint);//работает когда 3
myPivotPoint становится до фонаря, улетает в непонятном направлении.