jw_cad 外部変形 - (1554-1) jw.rbで楕円の内側の点から法線を引く(suisens) - (original) (raw)

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

楕円の内側の点から法線を引くとき、その数が4つのときと2つのときがあることに気づきます。ここでは、それを作図で理解しようと思います。

作図例

:jw.rbで楕円の内側の点から法線を引く(suisens)
@echo off
ruby -x %0
goto:eof

REM #jww
REM #1ci 円・円弧を指示して下さい
REM #2 位置を指示してください
REM #e

#ruby -Ks -rjw
jww
plot ci 2.hp, 20
plot msg suisens(1.ci, 2.hp)
plot "h#%.1f" % ci_hpdist(1.ci, 2.hp)
__END__
suisens(1.ci, 2.hp) は円から点までの法線を返します。
1.ci は 円データ
2.hp は 点の位置

楕円の内側に5°毎に法線を描くと法線が4つの領域と2つの領域が見えてきます。

作図例

:楕円の内側に法線を描く
@echo off
ruby -x %0
goto:eof

REM #jww
REM #0
REM #e

#ruby -Ks -rjw
ci = [0, 0, 1000, 0, 0, 0.5, 30]
jww
lc 2
plot ci
lc 1
0.step(359,5).each { |d|
pt = cipoint(ci, :p, d)
d2 = cislope(ci, pt, pm = 0)
plot pstroke pt, -ci.r, d2
}
__END__

なお、楕円の外側の点からの法線は2つあります。外側の点の領域は1つです。