作者adrianshum (Alien)
看板java
标题Re: [问题] 请问一下绘图时线段的作法
时间Tue Dec 16 12:11:20 2008
※ 引述《seruze (seruze)》之铭言:
: 我设置了一条线,先设为黑色的线.( 由X1到X2 的一条线段)
: 在按下开始钮後,这条线会一段一段变成白色,60秒後全变白.
: 一秒会变一段,所以60秒全变白.
: 所以我的想法是设一个 int step = (X2-X1)/60;
: 然後每过一秒,画一段step长度的线段.
: 但现在问题来了,60个step加起来,也不会和(X2-X1)一样长度.
: 因为在做除法的时候,有误差.
: 请问有大大做过类似的嚐试吗?
: 能指点一下做类似功能的想法吗?
: 希望各位能多多指教,谢谢!
反过来做就好了啦
不是求线段长度再递增, 而是每次直接求
需要的线线座标
有本来的 X1, X2
每一秒求出要画的线段的两个座标:
(psuedo code):
int x1=??;
int x2=??;
int stepFrom=x1;
int stepTo=0;
for (i=0; i < 60; i++) {
stepTo = ((x2-x1) * (i+1)/60) + x1; // 算出这段要画到哪
draw(stepFrom, stepTo);
stepFrom = stepTo;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
※ 编辑: adrianshum 来自: 202.155.236.82 (12/16 12:13)
1F:推 seruze:感谢回答,我也想过这种作法,只是线段长度会没办法一样. 12/16 13:41
2F:→ seruze:虽然差异很小,但不知有没有其他作法呢,希望能参考更多^^ 12/16 13:42
3F:推 pao0111:使用缩放的技巧,每次画10个pixel,从0画到600个pixel。 12/17 00:33
4F:→ pao0111:再放大至真正要显示的宽度。请参考Graphics2D.scale()。 12/17 00:36
5F:推 seruze:喔喔~~@@,Graphics2D~~我还没用过~~我来找找看,谢谢^^ 12/17 00:47