Indexへ
(25181)//【25192】→(25194)
------------------------
【タイトル】作図方法(矩形の位置を決める)方法について
【記事番号】 25192 (*)
【 日時 】07/12/07 09:24
【 発言者 】納豆の里

角度を持って交差する2線(Y軸は垂直)に,任意の寸法の矩形(長方形)を,
Y軸に対しては線上に,X方向に対しては矩形の角との接点に作図方法をご存知でしたらお教えください。
※X方向の接点を計算して作図すればできますが,その手間を省くことが
 できれば便利と思い投稿しました。


Indexへ
(25192)←【25194】→(25196)
------------------------
【タイトル】Re(1):作図方法(矩形の位置を決める)方法について
【記事番号】 25194 (25192)
【 日時 】07/12/07 09:52
【 発言者 】kubo

▼納豆の里さん:
>角度を持って交差する2線(Y軸は垂直)に,任意の寸法の矩形(長方形)を,
>Y軸に対しては線上に,X方向に対しては矩形の角との接点に作図方法をご存知でしたらお教えください。
>※X方向の接点を計算して作図すればできますが,その手間を省くことが
> できれば便利と思い投稿しました。


Y方向線と斜めの線に、寸法の決まった矩形を
Y方向線には矩形の一方の縦線が重なり、斜めの線には他方の縦線の角が
接するように描きたいというのであれば、
Y方向線の複線を補助線で矩形の横寸法で引けばよいと思いますが。
意味が違いますか?


Indexへ
(25194)←【25196】→(25199)
------------------------
【タイトル】Re(1):作図方法(矩形の位置を決める)方法について
【記事番号】 25196 (25192)
【 日時 】07/12/07 10:52
【 発言者 】鈴木

▼納豆の里さん:
>角度を持って交差する2線(Y軸は垂直)に,任意の寸法の矩形(長方形)を,
>Y軸に対しては線上に,X方向に対しては矩形の角との接点に作図方法をご存知でしたらお教えください。
>※X方向の接点を計算して作図すればできますが,その手間を省くことが
> できれば便利と思い投稿しました。

●矩形は中心が基点で作図されますが、決定するまでは赤い仮線で表示されて
います。
この間に落としたい位置を12時、1時半、3時というように360度
落としどころを変更できます。
これではだめなんですね?
形の決まった矩形をXYの線とは関わりなく、一旦画面上に作図してしまって
移動コマンドで移動するときに基点変更をして矩形の角をつかんでドロップする
という作業はダメですか?
線の角度にあわせて傾けたければ「線角」から傾斜線クリック。
どんぴしゃ定位置に落としたければ右クリックですし、離れた定位置でしたら
オフセットという手も有ります。
正直、質問の文章がよく分かりませんでした。


Indexへ
(25196)←【25199】→(25294)
------------------------
【タイトル】Re(1):作図方法(矩形の位置を決める)方法について
【記事番号】 25199 (25192)
【 日時 】07/12/07 12:39
【 発言者 】コジマ

▼納豆の里さん:
>角度を持って交差する2線(Y軸は垂直)に,任意の寸法の矩形(長方形)を,
>Y軸に対しては線上に,X方向に対しては矩形の角との接点に作図方法をご存知でしたらお教えください。
>※X方向の接点を計算して作図すればできますが,その手間を省くことが
> できれば便利と思い投稿しました。

ちょっと、手があいたので、外変を作ってみました。
ruby の動作する環境が必要です。
以下でDLできます。
http://gravelroad.yh.land.to/category/2/subcatid/6


◎バッチファイル
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。


@REM 縦線と斜線に接する矩形作図
@echo off
REM #jww
REM #cd
REM #c矩形の横寸法 無指定:1000/_/a
REM #c矩形の縦寸法 無指定:1000/_/b
REM #1ln縦線を指示してください
REM #2ln斜線を指示してください
REM #hp
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt %1 %2 > jwc_temp.txt
exit

#!ruby -Ks
include Math

def sen_sen_kouten2(sen1,sen2)
    sen1x=sen1[2]-sen1[0]
    sen1y=sen1[3]-sen1[1]
    sen1xy=sqrt(sen1x**2+sen1y**2)
    sen1_arg=atan2(sen1y,sen1x)
    x1_1=sen1[0]
    x1_2=sen1[0]+sen1xy
    y1_1=sen1[1]
    y1_2=sen1[1]

    x=sen2[0]-sen1[0]
    y=sen2[1]-sen1[1]
    xy=sqrt(x**2+y**2)
    arg=atan2(y,x)
    henkaku=arg-sen1_arg
    x2_1=sen1[0]+xy*cos(henkaku)
    y2_1=sen1[1]+xy*sin(henkaku)

    x=sen2[2]-sen1[0]
    y=sen2[3]-sen1[1]
    xy=sqrt(x**2+y**2)
    arg=atan2(y,x)
    henkaku=arg-sen1_arg
    x2_2=sen1[0]+xy*cos(henkaku)
    y2_2=sen1[1]+xy*sin(henkaku)

    x=x2_2-x2_1
    y=y2_2-y2_1
    delta=y/x

    y=y1_1-y2_1
    dx=y/delta
    kouten_x=x2_1+dx
    kouten_y=y1_1

    x=kouten_x-x1_1

    kouten_xt=x1_1+x*cos(sen1_arg)
    kouten_yt=y1_1+x*sin(sen1_arg)

    return [kouten_xt,kouten_yt]
end

w,h=1000.0,1000.0
while ARGV.size>1
    case argument=ARGV.pop
        when /\/a/
            w=argument[2..-1].to_f
        when /\/b/
            h=argument[2..-1].to_f
    end
end
sen=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^hp1/
        hpx,hpy=xy[1].to_f,xy[2].to_f
    end
    if xy[0]=~/^\d|^-/
        xy.collect!{|item|item.to_f}
        if xy[0]>xy[2]
            xy[0],xy[2],xy[1],xy[3]=xy[2],xy[0],xy[3],xy[1]
        elsif xy[0]==xy[2]
            xy[1],xy[3]=xy[3],xy[1] if xy[1]>xy[3]
        end
        sen<    end
end
sen1,sen2=sen[0],sen[1]
arg1=atan2(sen1[3]-sen1[1],sen1[2]-sen1[0])
arg2=atan2(sen2[3]-sen2[1],sen2[2]-sen2[0])
arg=arg1-arg2

x,y=sen_sen_kouten2(sen1,sen2)
l=(w/sin(arg)).abs

hp_arg=atan2(hpy-y,hpx-x)

if hp_arg>0
    lx=w
    ly=l*cos(arg)
    x1,y1=x,y+ly
    x2,y2=x1+w,y1+h
else
    lx=-w
    ly=l*cos(arg)
    x1,y1=x,y-ly
    x2,y2=x1-w,y1-h
end

printf("%.11f %.11f %.11f %.11f\n",x1,y1,x2,y1)
printf("%.11f %.11f %.11f %.11f\n",x1,y1,x1,y2)
printf("%.11f %.11f %.11f %.11f\n",x1,y2,x2,y2)
printf("%.11f %.11f %.11f %.11f\n",x2,y2,x2,y1)


Indexへ
(25199)←【25294】//(25197)
------------------------
【タイトル】Re(2):作図方法(矩形の位置を決める)方法について
【記事番号】 25294 (25199)
【 日時 】07/12/10 12:30
【 発言者 】納豆の里

kubo様 鈴木様 コジマ様

貴重なご教授をいただきましてありがとうございます。
皆様からお教えいただいたことを実践できるように,更に勉強する所存です。
誠にありがとうございました。

                   納豆の里