我有一個應用程序,用戶必須在畫布上繪製一條線而不重疊。有沒有辦法測試重疊?我已經使用Google搜索,但發現了圓圈和矩形重疊的結果。我的情況不同。這裏用戶將在畫布上繪製線條而不重疊線條本身。可能是我錯過了一些東西,所以任何指導表示讚賞。謝謝Flash繪製線重疊檢查
0
A
回答
2
我認爲你的意思是用戶用某種筆工具畫一條線,用鼠標。
這裏是我會做:
首先,持有BitmapData對象繪製的線條的路徑。
var lineBitmapData:BitmapData = new BitmapData(display.width,display.height,true,0x00000000);
這會創建一個透明的位圖對象,並在其上包含用戶的行。
在每個幀(或定時器事件,如果使用定時器)執行以下操作:
1.capture當前鼠標位置,並把它變成一個Point對象。
var currentMousePosition:Point = new Point(mouse.x,mouse.y);
你還需要一個點來代表你的bitmapData的左上角。當前鼠標位置和lineBitmapData
var result:Boolean = lineBitmapData.hitTest(pt1, 0xFF, currentMousePosition);
在則hitTest方法的第二個參數之間
var pt1:Point = new Point(1,1);
2.perform碰撞檢測是門限值。基本上,這需要設置爲您希望算作命中的最小alpha值。
3.檢查hitTest的結果。如果它是假的,這意味着用戶將要繪製這個框架的內容不會與已經繪製的內容相交。在這種情況下,將最後一幀期間繪製的位添加到lineBitmapData。
但是,如果hitTest返回true,那意味着用戶即將使他的線相交,因此您的程序需要停止繪圖(或任何您想要的行爲)。
if(result){
myPenTool.stopDrawing();}else{
var drawnLastFrame:BitmapData = myPenTool.drawSingleFrameLine();
lineBitmapData.draw(drawnLastFrame);}
4.Update用戶看到新lineBitmapData
相關問題
- 1. 兩條線之間的重疊檢查
- 2. 重疊繪製重疊的半透明線條而沒有變暗
- 3. 根據密度繪製顏色重疊線
- 4. 在matplotlib中繪製重疊線的建議?
- 5. 如何繪製曲線可能重疊的地方?
- 6. 線條不被繪製在重疊視圖上
- 7. 檢查範圍重疊
- 8. 檢查重疊日期(vb.net)
- 9. PHP時間重疊檢查
- 10. 檢查矩形重疊
- 11. 檢查重疊系列
- 12. 檢查條件(繪製==繪製)
- 13. Flash Bug - 強制屏幕重繪
- 14. 堆疊JPanel重新繪製不正確
- 15. 圖像重疊和繪製兩次
- 16. 如何繪製重疊立方體
- 17. FLASH AS3聲音重疊
- 18. 查找重疊時間的線程
- 19. 查找重疊線段的算法
- 20. GMSURLTileLayer重疊折線
- 21. ChartJS非重疊線
- 22. 檢查WPF中的重疊形狀
- 23. Javascript for loop檢查間隔重疊
- 24. DateTime蜱蟲,檢查重疊日期C#
- 25. 檢查多個重疊的精靈
- 26. 檢查兩個矩形是否重疊
- 27. 的Javascript檢查是否範圍重疊
- 28. 檢查重疊的汽車保留
- 29. 如何檢查時間重疊軌道
- 30. 檢查日程是否重疊
在屏幕上。非常感謝您的回覆。我嘗試過,但效果不佳。它只有在我畫得非常緩慢時才起作用,所以它抓住了所有的鼠標位置,但是如果我畫得更快,它會繞過所有檢查,我認爲需要獲得路徑上的所有點可以解決這個問題,但不知道該怎麼做。不管怎樣,謝謝你 –