私はフロアプランを描くことができる必要があるアプリケーションを開発していますが、多かれ少なかれオブジェクトとして機能するために描かれた線が必要です。たとえば、線をクリックしたり、部屋に関連付けられている場合は、部屋のすべての線を強調表示したりできる必要があります。
コードサンプルは必ずしも必要ではありませんが、ヒントやアイデアも必要です。
前もって感謝します!
Line、Room などのクラスを作成します。
Room には Lines のリストが含まれています。
Line には draw() メソッドと contains(x as integer, y as integer) メソッドがあります。
実装するには次を含みます: 始点と終点が与えられた線の方程式を理解できます。次に、数式距離 = abs(a*x0 + b*y0 + c) / sqrt(a * a + b*b) 距離が 4 ピクセル以下の場合、contains は true になります。
直線と同様に、曲線には曲線を表す方程式があります。たとえば、ベジエと B スプラインには対応する方程式があります。これらの方程式を使用して、それらを描画し、それらからのマウスの距離を計算できます。
ベジエ曲線については、http: //blog.gludion.com/2009/08/distance-to-quadratic-bezier-curve.htmlを参照してください。
たとえば、円は最も簡単です。
distance = abs(radius - sqrt((mouseX - centerX)^2 + (mouseY - centerY)^2)