Código :
Convert3DPointTo2DPoint = function (points, angles, perspective)
{
var TransformedPointsArray = [];
var sx = Math.sin(angles.x);
var cx = Math.cos(angles.x);
var sy = Math.sin(angles.y);
var cy = Math.cos(angles.y);
var sz = Math.sin(angles.z);
var cz = Math.cos(angles.z);
var xy;
var xz;
var yx;
var yz;
var scaleFactor;
var i = points.length;
while (i--)
{
xy = points[i].y * cx - points[i].z * sx;
xz = points[i].y * sx + points[i].z * cx;
yx = points[i].x * cy + xz * sy;
yz = xz * cy - points[i].x * sy;
scaleFactor = perspective / (perspective + yz);
TransformedPointsArray[i] = {x: (yx * cz - xy * sz) * scaleFactor, y: (yx * sz + xy * cz) * scaleFactor};
}
return(TransformedPointsArray);
};
points = [{x: 50, y: 50, z: 0}, {x: -50, y: 50, z: 0}, {x: 0, y: 0, z: 0}, {x: 0, y: 100, z: 0}, {x: 0, y: 50, z: 50}, {x: 0, y: 50, z: -50}];
perspective = 300;
this.createEmptyMovieClip("scene3D", 1);
scene3D._x = 85;
scene3D._y = 40;
for (i = 0; i < points.length; i++)
{
dot = scene3D.createEmptyMovieClip("dot" + i, i);
dot.lineStyle(4, 0, 100);
dot.lineTo(0.150000, 0.450000);
}
scene3D.createTextField("xaxis", 200, 0, 0, 50, 50);
scene3D.xaxis.text = "X";
scene3D.createTextField("yaxis", 201, 0, 0, 50, 50);
scene3D.yaxis.text = "Y";
scene3D.createTextField("zaxis", 202, 0, 0, 50, 50);
scene3D.zaxis.text = "Z";
scene3D.xaxis.selectable = scene3D.yaxis.selectable = scene3D.zaxis.selectable = false;
scene3D.angles = {x: 0, y: 0, z: 0};
scene3D.onEnterFrame = function ()
{
this.angles = {x: 0, y: y = y + 0.050000, z: 0};
this.clear();
this.lineStyle(1, 0, 100);
ScreenPositions = Convert3DPointTo2DPoint(points, this.angles, perspective);
for (i = 0; i < points.length; i++)
{
this["dot" + i]._x = ScreenPositions[i].x;
this["dot" + i]._y = ScreenPositions[i].y;
if (i < 6)
{
if (i % 2)
{
this.lineTo(ScreenPositions[i].x, ScreenPositions[i].y);
continue;
}
this.moveTo(ScreenPositions[i].x, ScreenPositions[i].y);
}
}
this.xaxis._x = this.dot1._x + 10;
this.xaxis._y = this.dot1._y - 20;
this.yaxis._x = this.dot2._x + 10;
this.yaxis._y = this.dot2._y - 20;
this.zaxis._x = this.dot4._x + 10;
this.zaxis._y = this.dot4._y - 20;
};
BUENO YO ME PREGUNTO SE PODRA ADAPTAR ESTE CODIGO A UNA IMAGEN O A UN MOVIE CLIP! ooooooo si ustedes tienen algun tuto donde indique como hacer que mi movie clip gire... me logro hacer entender?? bueno espero que si... les deseo lo mejor
ATTE: yop Locorama
