VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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

といった感じです。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -