2017-06-30 41 views
1

我正在開發一個wordsearch遊戲。表格佈局包含文字瀏覽。 Textviews顯示字符。當用戶在8個方向中的任何一個上找到一個單詞時:我想在相應方向上的單詞上顯示畫布線。在Android中只繪製橫向,縱向和對角線

我可以繪製水平,垂直和對角線從起點到終點。起點是用戶開始刷卡的地方。終點是他停止滑動的地方。

Check the first three screenshots here

但我的問題是,我也能得出錯誤的座標不屬於水平,垂直或對角線之間的其他線路。請參閱接下來的三個屏幕截圖。

我只想繪製水平,垂直和對角線。當終點座標錯誤時,我需要移動終點以與附近的任何一個方向(水平,垂直或對角線)重合。

+0

你看起來要對無效的單詞畫線,你不應該忽視這些嗎? –

+0

是的。我們應該考慮錯誤的座標。然後,我們需要將座標移至可能是水平,垂直或對角線的任何一個附近方向。所以,即使用戶在錯誤的座標上滑動,我們也可以在正確的座標中繪製直線。 –

回答

0

您可以在繪製之前找到該線的斜率。假設相等大小的,間隔均勻的字母,並且觸摸點是在每個字母中的相同位置...

東西超過0 - 垂直線
±1 - 對角線
0 - 水平

式= (p2.y - p1.y)/(p2.x - p1.x)

+0

你的回答對我的問題是一個很好的提示。當用戶觸摸柵格而不是垂直,對角線和水平方向時,斜率總是小於或大於±1。 –