投稿日 | : 2007/07/06(Fri) 10:26 |
投稿者 | : よねKEN |
Eメール | : |
URL | : |
タイトル | : Re: ラインを描き、重ならずに始点の横に文字を表示したい |
私の方は手抜き案ですが、よければどうぞ。
> ラインの支点に固定で、100をプラスしているのが問題だと思いますが。
> 実際にセットする値をどのように導き出せば良いか分かりません。
始点(x1, y1)、終点(x2, y2)、数字を書く位置(Xn, Yn)としましょう。
始点(x1, y1)に単に100を足すだけだと、
例えば終点(x2, y2)が(x1+50, y1+50)だとアウトですね。
(1) Xnについて
X1 < X2の場合
右方向に線は伸びているので、XnはX1より左側にあればよい。
X1 = X2の場合
Y軸方向に伸びているので、XnはX1と同じでもよい。
X1 > X2の場合
左方向に伸びているので、XnはX1より右側にあればよい。
これらをまとめるとsgn関数を使って以下のようにXnを求めれば安全。
Xn = X1 + sgn(X1-X2) * 100
※ 100は数字の大きさに合わせて適当に調整
(2) Ynについて
X座標方法の場合と同じ考え方
Yn = Y1 + sgn(Y1-Y2) * 100
といった感じです。