![]() |
xiaoyanggao (2009-07-24 15:38:28) |
我讲讲我的看法,首先立方体可以用PV3D自带的Cube模型创建,调整长宽高及XYZ坐标可以移动到如图所示位置,九宫格的平面可以用Plane模型创建,然后用相应的贴图上材质,至于三根坐标线我倒是没研究过,可以看看别的办法 |
![]() |
jediss (2009-07-24 15:53:27) |
点线面体算是全了,不仅有三根坐标线,坐标0点还有一个点,随着输入xyz值而变动位置,实在不知如何是好了~请各位大师再多给些提示好不。。。 |
![]() |
DDM君 (2009-07-24 17:37:48) |
我们讨论区终于有3名女性了~泪流满面,不容易啊。 坐标0这个点用一个小的plane,然后 plane.lookAt(摄像机) 就可以了 三根线可以用core包的geom包里面的line3d 构造是这个方法 Lines3D(material:LineMaterial, name:String=null) 画线是用方法 addNewLine(size:Number, x0:Number, y0:Number, z0:Number, x1:Number, y1:Number, z1:Number) : Line3D ps:小羊羔君真是天赋异禀啊,这么几天就精通flash3d了~~好样儿的。 |
![]() |
xiaoyanggao (2009-07-24 18:02:20) |
我哪有这么强啊,完全是被逼出来的,项目那里在催,只有日以继夜的赶进度咯,我以前都用AS2.0很少用AS3.0的,为了这个项目顺便把AS3.0的原理也学了,还好有这个论坛提供一切源代码,学的过程有目的性,不过现在为止还是很片面,概念不是很清楚,以后要慢慢品味,希望教程再多点,最好有什么简易游戏教程什么的,呵呵 |
![]() |
DDM君 (2009-07-25 10:32:03) |
看来压力是一种动力啊,哈哈哈。AS3熟悉以后就会爱上的,结构要有道理的多。 只要原理理解到所有引擎代码能自己看懂,就可以慢慢修炼了,呵呵 |
![]() |
jediss (2009-08-02 17:52:50) |
大师哥哥~~还记得我吗?加上感冒了几天, 俺照着方法,做了好多天,怎么也都做不好,只显示一条z轴的线,不知该如何是好,能再指点下错误好吗? 线的代码如下: var defaultMaterial:LineMaterial = new LineMaterial(0xFFFFFF); var axes:Lines3D = new Lines3D(defaultMaterial); var xAxisMaterial:LineMaterial = new LineMaterial(0xFF0000); var yAxisMaterial:LineMaterial = new LineMaterial(0x00FF00); var zAxisMaterial:LineMaterial = new LineMaterial(0x0000FF); var xAxisorigin:Vertex3D = new Vertex3D(0, 0, 200); var yAxisorigin:Vertex3D = new Vertex3D(0, 200, 0); var zAxisorigin:Vertex3D = new Vertex3D(200, 0, 0); var xAxis:Line3D = new Line3D(axes, xAxisMaterial, 2, xAxisorigin, new Vertex3D(200, 0, 0)); var yAxis:Line3D = new Line3D(axes, yAxisMaterial, 2, yAxisorigin, new Vertex3D(0, 200, 0)); var zAxis:Line3D = new Line3D(axes, zAxisMaterial, 2, zAxisorigin, new Vertex3D(0, 0, 200)); axes.addLine(xAxis); axes.addLine(yAxis); axes.addLine(zAxis); scene.addChild(axes); |
![]() |
jediss (2009-08-02 18:02:06) |
|
![]() |
jediss (2009-08-02 18:14:13) |
还有下面的也不对:请求指点 private function createLines():void { var lines = new Lines3D(); var lines.addNewLine(2, 0, 0, 0, 200, 0, 0); var scene.addChild(lines); var lineMaterial = new LineMaterial(0xffffff); } |
![]() |
(2009-08-02 19:56:45) |
我正在做一个3维的 数据图表,和上面的图片有点类似,明天可以我把代码贴上来,没准对你有帮助。 |
![]() |
jediss (2009-08-02 20:50:58) |
不管怎样,都先谢谢了,十分感谢,我都做了好几天了也没做出来,笨死我了,先谢了~~ |
![]() |
hiddenshark (2009-08-02 21:24:33) |
楼主能提供下图片么? 我现在就找这种6面图的。 |
![]() |
jediss (2009-08-02 22:29:46) |
你要什么六面图的图片,我发给你 |
![]() |
hiddenshark (2009-08-03 08:39:43) |
就是上下左右前后能组成一个场景的图。 我做了个这个东西,可是没有合适的图。 http://www.wwcctt.com/flash/360-2 |
![]() |
hiddenshark (2009-08-03 08:40:08) |
忘记了,我邮箱:hiddenshark2008@hotmail.com |
![]() |
jediss (2009-08-03 08:54:36) |
得和您解释下,不过上面图片是软件界面的截图,并不是什么烘焙出来的完整的贴图哦,那个我也不会哦,以上效果图片的flash 我还有很多问题,没做好~~ |
![]() |
DDM君 (2009-08-03 11:50:17) |
jediss真可怜啊,都看代码看到病了,严重理解=___= 您说只显示Z线,一般就是因为没有深度复制的对象,被重复声明了,所以刚好只剩最后一个声明的z。 可以通过把y或x,放在最后,来证明是不是最后一条线变成了x或y 试试这三句,不要都用axes做instance,再声明三个lines3d来做instance。 var xAxis:Line3D = new Line3D(axes, xAxisMaterial, 2, xAxisorigin, new Vertex3D(200, 0, 0)); var yAxis:Line3D = new Line3D(axes, yAxisMaterial, 2, yAxisorigin, new Vertex3D(0, 200, 0)); var zAxis:Line3D = new Line3D(axes, zAxisMaterial, 2, zAxisorigin, new Vertex3D(0, 0, 200)); |
![]() |
jediss (2009-08-03 13:18:46) |
请问,DDM君 大师哥哥们: 以下(界面02)图片效果,flash可以做出 输入 不同xyz值 创建 不同的点 ,然后N个点连接形成线吗? 界面02 ![]() |
![]() |
DDM君 (2009-08-03 13:24:36) |
可以的呀,只要把后一条线的起点 和 前一条线的终点 的xyz相同就可以了嘛 呵呵 用addline |
![]() |
jediss (2009-08-03 13:29:01) |
谢谢 DDM君的关心 百忙之中的指导~我再试试 |
![]() |
jediss (2009-08-03 13:31:54) |
我怕浪费您时间,我先尽量把您的帖子都去看看,尽量看完,我再发我的小弱弱问题~~ |
![]() |
hiddenshark (2009-08-03 16:38:15) |
…… 那还是算了吧。 我以为是用照相机在中心点拍的6张照片呢。 |
![]() |
(2009-08-03 23:25:09) |
代码贴上来,看看对你有帮助吗? var lineMa1:LineMaterial = new LineMaterial(0xff00ff); var lines:Lines3D = new Lines3D(lineMa1); var line:Line3D = new Line3D(lines,lineMa1,5,new Vertex3D(0,0,0),new Vertex3D(500,0,0)); var line1:Line3D = new Line3D(lines,lineMa1,5,new Vertex3D(0,0,0),new Vertex3D(0,500,0)); var line2:Line3D = new Line3D(lines,lineMa1,5,new Vertex3D(0,0,0),new Vertex3D(250,250,100)); lines.addLine(line); lines.addLine(line1); lines.addLine(line2); scene.addChild(lines); |
![]() |
jediss (2009-08-04 07:05:47) |
如下:有好多问题,麻烦大师帮忙看下~ |
![]() |
jediss (2009-08-04 07:07:41) |
显示不出来,还是看这个地址: http://www.coolren.cn/jediss/ |
![]() |
jediss (2009-08-04 07:26:11) |
目前问题: 请求DDM君 大师指导 1.坐标系不会一起转动,y轴和z轴怎么方向、位置都不对. 2.平面的哪个贴图是九宫格呢(不是带三角线框那种). 3.dae文件透明如何实现哦 4.图右,xyz怎么和左图互动呢.输入数值增加点.这个点是用plane,还是sphere. 5.怎么改变他们的坐标精确位置哦. 6... |
![]() |
DDM君 (2009-08-04 11:51:34) |
1)要所有物体包括坐标的线都加入(addChild)到一个空的虚拟物体DisplayObject3D里面,然后完全操作这个虚拟物体。 2)九宫格用带有alpha通道的png图片也可以,用mc画线后作为MovieMaterial贴图也可以 3)dae透明必须其贴图为带有alpha通道的png图片。 4)没看懂您的意思,不知道这篇是不是您要的内容 http://www.flab3d.com/tutorial.php?top=t21quat 5)单个物体的位置吗?如果问题1的虚拟物体是没动过(0,0,0)的话,物体的位置相对于这个虚拟物体的位置。 |
![]() |
jediss (2009-08-04 12:34:35) |
非常感谢 DDM君 有点明白了,我去继续努力~ 还有以上问题4,具体情况如下图: 界面03 ![]() 您看这样可以实现吗? |
![]() |
jediss (2009-08-04 12:37:37) |
打扰 DDM君 您中午休息的时间了,真的非常感谢能得到您的指导~~ |
![]() |
jediss (2009-08-06 13:58:43) |
麻烦请问DDM君 ,如图界面03 ,flash 能做出来吗? |
![]() |
jediss (2009-08-07 09:38:50) |
DDM君可不可以有时间一定帮忙看看好不?以上图动画,可不可以用flash和pv3d来实现呢?我找不到相关方法,拜托求助DDM君... |
![]() |
DDM君 (2009-08-07 11:06:27) |
普通的连线当然是没有问题,但动画过渡是个比较麻烦的事情。 虽然能完成,但比较复杂。要用到我们傻瓜包里面的Tween.as这个类的功能。但这个类比较复杂,一两句话也说不清楚,里面的注释倒是很详细,可以看看。 原理是这样: 通过输入两端的x,y,z到tween,然后让tween每帧反馈一个新的x,y,z点,每秒重新绘制line,根据A的x,yz到这个反馈回来的xyz,直到达到B点的xyz。 |
![]() |
jediss (2009-08-07 13:56:39) |
哇~~谢谢DDM君,我去看看详细注释,看能明白吗。 先谢谢您了,恐怕否则我就得搬着小凳子去找您DDM君大人了,请您一定不要见怪哦,我一定要把这个任务完成才是啊~ |
![]() |
DDM君 (2009-08-08 13:06:46) |
呵呵,没事没事,加油。欢迎来杭州玩^_^ |
![]() |
jediss (2009-08-08 14:38:24) |
郑州离得不近哦,呵呵。这题目已是上个月的事了,看着简单常用,自己却怎么也达不到要求。 Tween类边翻译边理解吧,哎,DDM君郑州有分站吗,呵呵... |
![]() |
jediss (2009-08-09 16:16:31) |
DDM君求助~~可不可以方便加下我QQ 331006872 Tween类实在没怎么看明白,能联系到您才好,可以吗? |
![]() |
jediss (2009-08-10 12:29:57) |
DDM君,有时间看到的话,可不可以加下QQ,可以吗?唉,还是关于以上求助问题的,不会占用您太多时间,可以吗?实在不方便的话,哪怕将您的联系方式发到我邮箱 331006872@qq.com也可以,谢谢了~ |
![]() |
DDM君 (2009-08-11 10:45:09) |
已经加您的q了^_^ |
|
|