2017-06-30 9 views
1

私は単語検索ゲームを開発しています。テーブルレイアウトにはテキストビューが含まれています。テキストビューに文字が表示されます。ユーザーがTopToBottom、BottomToTop、LeftToRight、RightToLeft、TopToBottomRight、BottomToTopLeft、ToptoBottomLeft、BottomToTopRightのいずれかの方向に単語を見つけたら、対応する方向に単語上にキャンバス線を表示したい。Androidで水平、垂直、斜線だけを描く

開始点から終了点まで水平、垂直、斜線を描くことができます。開始点は、ユーザーがスワイプを開始する場所です。エンディングポイントは、スワイプを止める場所です。

Check the first three screenshots here

しかし、私の問題は、私はまた、水平、垂直または斜めの線ではありません間違った座標間の他の線を描くことができるということです。次の3つのスクリーンショットを参照してください。

水平、垂直、斜線だけを描きたい。終了点が間違った座標である場合、終点を近くの方向(水平、垂直、または対角線)のいずれかと一致するように移動する必要があります。

+0

あなたは無効な言葉で線を引くように見えますが、それを無視するべきでしょうか? –

+0

はい。私たちは間違った座標を捨てるべきです。次に、座標を水平方向、垂直方向または斜め方向のいずれかの方向に移動する必要があります。したがって、ユーザーが間違った座標でスワイプしても、右の座標に線を描くことができます。 –

答えて

0

描画する前に線の傾きを見つけることができます。 =水平

式 - 等しいサイズと仮定すると、等間隔の文字、およびタッチポイントは、各文字内の同じ位置にある... 0上

何か - 垂直線
±1から
0対角線(p2.y - p1.y)/(p2.x - p1.x)

+0

あなたの答えは私の質問の大きなヒントです。ユーザが垂直、対角線、および水平方向以外のグリッドに触れると、傾きは常に±1より小さいかまたは大きい。 –

関連する問題