作者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)
推 seruze:感謝回答,我也想過這種作法,只是線段長度會沒辦法一樣. 12/16 13:41
→ seruze:雖然差異很小,但不知有沒有其他作法呢,希望能參考更多^^ 12/16 13:42
推 pao0111:使用縮放的技巧,每次畫10個pixel,從0畫到600個pixel。 12/17 00:33
→ pao0111:再放大至真正要顯示的寬度。請參考Graphics2D.scale()。 12/17 00:36
推 seruze:喔喔~~@@,Graphics2D~~我還沒用過~~我來找找看,謝謝^^ 12/17 00:47