如何画出一个立方体? 建议你看看J2SDK自带的演示例子!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我知道同时画三个矩形可以实现,问题是现在我想把它单独做成一个图形,继承自Shape,可以调用Graphics2D的draw(Shape shape)方法来绘制它。 写一个类,有一个方法draw(int shape);假设shap=1,画长方体画长方体其实是画柱状图的一个常用方法就是不停的画长方形,然后每个长方形的位置都在上一个长方形的上面一点这样很多重叠起来就是长方体了不知道楼主懂了没有我表达地不好 我知道同时画三个矩形可以实现,问题是现在我想把它单独做成一个图形,继承自Shape,可以调用Graphics2D的draw(Shape shape)方法来绘制它。不管你怎么画他,这个draw方法都得你自己实现阿。 你的这个问题没有你想的那么简单,涉及到2D对象的问题,不过我没做过2D对象,我做过3D 对象,如果你要画立方体,那么应该是3D对象的问题.具体的源程序太长了,贴不下,我把思想告诉你吧.需要的类 :(当然,这些类是自己写的,这里只是我的结构,你也可以不这么写)Vector3D //3D向量,封装一些基本的向量计算,相加,相减, 点积,叉积,数乘等等Polygon3D //多边形(自己来确保其各个定点在同一个平面内),封装一个 Vector3D[] 数组,实现旋转,求法向量,和transform(这个词翻译过来味道不对) 操作.ViewWindow //视窗,负责空间坐标系和显示器坐标系的变换,包括投影计算//流程1.生成一个有8顶点的 Vector3D[] 数组(就是正方体的8个顶点2.利用这8个顶点生成6个Polygo3D (尽量按照左手系或者右手系排列顶点,这样方便以后进一步开发)3.生成一个和窗口一样大的ViewWindow4.循环: 0)生成一个空的 GeneralPath path 1)把Polygon3D 投影到ViewWindow 2)把投影好的顶点加入到path当中 3)g.draw(path)//循环直到6个面都画到窗口上.到这里,你的问题已经解决.不过会有一个问题,立方体的前面和后面都画出来了,不对.这里需要这样进一步改进:(消除背面)1.对每一个Polygon3D (polygon 是多边形的意思) 求法向量2.用 Polygon3D 上的一个顶点减去观察点向量,得到一个 v3.用法向量和 v 求点积,点积小于0 ,说明多边形背对你,则不绘制,在循环里 continue(我用的是右手系统)这样,背面就被消掉了.这些方法都是比较经典的空间解析几何问题,建议复习一下大一的高数~~ 你也可以用极坐标系统,同样比较方便,只要修改一下 ViewWindow 的转换算法就可以了.在飞行模拟这样的系统当中,用极坐标应该会方便一些,极坐标对纹理贴图也比较好计算,不过有点不太好想,目前的建模工具都是生成笛卡儿坐标的模型,所以大家都还是用笛卡儿坐标. 那位同学给我简要的讲讲java动态代理的是什么?什么时候用? 学习最最简单的正则遇到的问题,............ 大家帮帮我啊!!!!关于JAVA的问答题!!!!1点30以前帮我搞好感激不尽!!!!! 用过JCreater的帮忙 EXCEPTION问题 如何使用JfreeChart画出像MS Project2003中的甘特图? 想换程序学习的网友请进。 java执行时的类查找问题!!! javac的路径该如何设置? iText显示多种中文字体问题!!!! 简单的问题 新手提问
就是不停的画长方形,然后每个长方形的位置都在上一个长方形的上面一点
这样很多重叠起来就是长方体了不知道楼主懂了没有
我表达地不好
需要的类 :(当然,这些类是自己写的,这里只是我的结构,你也可以不这么写)Vector3D //3D向量,封装一些基本的向量计算,相加,相减, 点积,叉积,数乘等等
Polygon3D //多边形(自己来确保其各个定点在同一个平面内),封装一个 Vector3D[] 数组,实现旋转,求法向量,和transform(这个词翻译过来味道不对) 操作.
ViewWindow //视窗,负责空间坐标系和显示器坐标系的变换,包括投影计算//流程
1.生成一个有8顶点的 Vector3D[] 数组(就是正方体的8个顶点
2.利用这8个顶点生成6个Polygo3D (尽量按照左手系或者右手系排列顶点,这样方便以后进一步开发)
3.生成一个和窗口一样大的ViewWindow
4.循环:
0)生成一个空的 GeneralPath path
1)把Polygon3D 投影到ViewWindow
2)把投影好的顶点加入到path当中
3)g.draw(path)
//循环直到6个面都画到窗口上.到这里,你的问题已经解决.
不过会有一个问题,立方体的前面和后面都画出来了,不对.
这里需要这样进一步改进:(消除背面)1.对每一个Polygon3D (polygon 是多边形的意思) 求法向量
2.用 Polygon3D 上的一个顶点减去观察点向量,得到一个 v
3.用法向量和 v 求点积,点积小于0 ,说明多边形背对你,则不绘制,在循环里 continue
(我用的是右手系统)这样,背面就被消掉了.这些方法都是比较经典的空间解析几何问题,建议复习一下大一的高数~~
在飞行模拟这样的系统当中,用极坐标应该会方便一些,极坐标对纹理贴图也比较好计算,不过有点不太好想,目前的建模工具都是生成笛卡儿坐标的模型,所以大家都还是用笛卡儿坐标.