Здравствуйте
Моя эпопея с поворотом IsoBox напроизвольный градус продолжается...
На скрине видно что точку rfb (right front bottom) в расчетах я неправильно позиционирую и она совпадает с rbb (right back bottom)
Я переписал немного as3isolib.geom.transformations.DefaultIsometricTransformation метод spaceToScreen(), добавив в параметры имя точки (lbb, rbb,rfb,lfb,lbt,rbt,rft,lft ) и угол поворота
теперь этот метод вот так выглядит

Код AS3:
public function spaceToScreen (spacePt:Pt, pointRelativeName:String="", rotation:Number=0):Pt
{
var rotatedPoint:Point;
if (!bAxonometricAxesProjection && bMaintainZAxisRatio)
{
spacePt.z = spacePt.z / axialProjection;
}
if (bAxonometricAxesProjection)
{
spacePt.x = spacePt.x * axialProjection;
spacePt.y = spacePt.y * axialProjection;
}
if(rotation!=0)
{
switch(pointRelativeName)
{
case "rfb":
case "rft":
//rotation+=90;
break;
case "lfb":
case "lft":
rotation+=90;
break;
}
//trace("spacePt.x="+spacePt.x);
if(spacePt.x==0)
{
// если координата по Х равна нулю - считаю повернутую точку по У
rotatedPoint = Point.polar(spacePt.y, rotation * Math.PI / 180);
}
else
{
rotatedPoint = Point.polar(spacePt.x, rotation * Math.PI / 180);
}
spacePt.x=rotatedPoint.x;
spacePt.y=rotatedPoint.y;
//trace("rotatedPoint="+rotatedPoint);
}
var z:Number = spacePt.z;
var y:Number = (spacePt.x + spacePt.y) / ratio - spacePt.z;
var x:Number = spacePt.x - spacePt.y;
return new Pt(x, y, z);
}
Что я неправильно делаю ?