关于Graphics2D draw方法精确度。。

burningball 2010-08-06 11:51:13
因为参数是int 但是我要画的有比较高的精度要求 10000m差5m,坐标又是浮点型,如何处理~请教高手。。
...全文
136 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rumlee 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 victor_woo 的回复:]
你自己的点数据用浮点,显示的时候才转为整形 (int)P.x
[/Quote]

就这样就行了,点坐标全部用浮点数表示,包括计算的时候都用浮点数,只有最后画的时候转换成整数。
victor_woo 2010-08-06
  • 打赏
  • 举报
回复
你自己的点数据用浮点,显示的时候才转为整形 (int)P.x
Geek618 2010-08-06
  • 打赏
  • 举报
回复
Graphics2D支持float,double类型的,在awt.geom包中,定义了多中shape的子类型,比如说,line2D,Rectangle2D等,实例化一条直线时:Line2D.Double line = new Line2D.Double(0, 0, 1, 1);
//Double(double x1, double y1, double x2, double y2)

然后,使用g2.draw(line ); //Graphics2D.draw(Shape shape)
burningball 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 victor_woo 的回复:]
你自己的点数据用浮点,显示的时候才转为整形 (int)P.x
[/Quote]

恩,如果是1:1的还好,这个是有比例尺缩放的啊~(1:10000或者1:5000)
根据屏幕分辨率算出来长度。缩放再加计算完就出现误差了 我用的math.round 但是显然也是不行

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧