![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Сделал сферу в PV3D, теперь нужно разместить ряд Plane-ов в соотвествии со смещениями по x,y относительно дифузной карты на сфере.
Есть XML c данными о смещении по x и y относительно картинки: <plane id="1" shiftX="30" shiftY="0" distance="350" scale="20"></p> <plane id="2" shiftX="235" shiftY="-220" distance="350" scale="20"></p> <plane id="3" shiftX="663" shiftY="150" distance="350" scale="20"></p> И такой код: ... sphere_obj = new Sphere(mat, 400, 50, 50);//Сфера с текстурой scene.addChild(sphere_obj); ... var imgW:Number=3400;//Ширина картинки var imgH:Number=1700;//Высота картинки var arrCount:Number=planeArray.length; for (var i:Number=0; i<arrCount; i++) { //0-id, 1-shiftX, 2-shiftY, 3-distance, 4-scale var id=planeArray[i][1]; var shiftX=planeArray[i][1]; var shiftY=planeArray[i][2]; var distance=planeArray[i][2]; var scale=planeArray[i][2]; var plane:DisplayObject3D=new Plane(materialOn, scale, scale); plane.name="pl"+id; planeArray[i][7]=plane.name; scene.addChild(plane); var angleX=shiftX/(imgW/360);//смещение/(пикселей на 1 градус) var angleY=(shiftY-(imgH/2))/(imgH/360);//смещение/(пикселей на 1 градус/2)<- 0 находится по центру img //А тут у меня пробки выбивает ( plane.x=distance*Math.sin(toRadians(angleX));//toRadians - функия перевода в радианы plane.z=distance*Math.cos(toRadians(angleX)); plane.y=distance*Math.sin(toRadians(angleY));//вот тут затык plane.rotationY=angleX; plane.rotationX=angleY; } Добавлено через 54 часа 8 минут [IMG]http://s2.********************/uploads/images/2012/08/05c4f90f160d6ef641e74f8f64968e5a.jpg[/IMG] Короче, это чертёж. А как я сделал - не скажу ) Последний раз редактировалось zerAlex2; 07.08.2012 в 18:21. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:27. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|