※ 引述《waykao (waykao)》之銘言:
: ※ 引述《Dumkas (Clair de lune)》之銘言:
: : 除非你有別的用途
: : 不然單純畫連續曲線的話是可以不用把座標都存下來
: : 開兩個single變數紀錄座標(舉例oldX,oldY)
: : 一個布林變數(true,false)紀錄是否在畫圖(以下稱為繪圖模式)
: : 在mouse_down事件而滑鼠按下左鍵時啟動繪圖模式
: : 而相對的在mouse_up要取消
: : 在mouse_move中,如果是處於繪圖模式
: : 就用line畫oldX,oldY-X,Y
: : 然後將oldx,oldY更新為X,Y
: : 而為了避免放開滑鼠後又按下時程式多畫一條從上次結束的點連過來的線
: : 所以啟動繪圖模式時要指定oldX=X, oldY=Y
: : 這樣是只要按下滑鼠
: : 拖曳經過的地方就會有黑線
: : 由於是由極短的直線構成所以看似曲線
: 謝謝你喔
: 不過我要存下來是因為我要利用它的值
: 去做運算,希望你幫幫忙
重寫一下
開兩個single變數陣列,或是二維陣列、自訂結構陣列
最好是開可變長度的(以下用dX(),dY())
一個布林變數紀錄是否在畫圖(以下稱為繪圖模式)
一個數值變數當作陣列指標(以下稱為指標t)
(這些都是全域變數)
首先陣列至少要有一項
指標t=這第一項的index
在mouse_down事件而滑鼠按下左鍵時啟動繪圖模式
而相對的在mouse_up要取消
在mouse_move中,如果是處於繪圖模式
就用line畫dX(t),dY(t)-X,Y
然後將dX(t),dY(t)更新為X,Y
如果陣列是可變,開陣列新的下一項(ex. Redim Preserve dX(t+1))
然後指標t也加1
避免放開滑鼠後又按下時程式多畫一條從上次結束的點連過來的線
現在困難度提高了=.=
我改成這樣:啟動繪圖模式時,如果指標對應的那一項還沒有儲存資料
就表示是第一次啟動
反之不是
所以不是第一次啟動的話就再開陣列下一項並指標加1
把新的這項存按下的X,Y
(由於我沒有試過,所以我不知道這會不會成功)
如果你想顯示兩次按下滑鼠的動作間隔
可以把啟動模式時的新開陣列動作改成開兩個
然後從第二個開始做
這樣中間會留下一個空項
不然就要用額外的變數紀錄了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.80.74