Indexへ
(26099)//【26083】→(26084)
------------------------
【タイトル】任意の線の鉛直線について
【記事番号】 26083 (*)
【 日時 】05/01/18 01:21
【 発言者 】じゅ

下記の4以外の方法で作図しますと、
測定結果に はるか細かい部分に 端数がでます。
89度59分59秒999984
とか
90度00分00秒000009

とか

気になりだしたら気になるのですが・・・
そういうものなのでしょうか?

軸角取得をすれば いろいろやってみましたが
90度00分00秒と出ます。

良かったら使い分けを教えてください。
4以外の方法が簡単だと思っていたのに
その方法に誤差があるとは・・・!?

------------------------------------

過去ログ
斜め線に対して線を鉛直に引く場合はどのように操作したら、いいのか教えて下さい
、よろしくお願いします。

1:線コマンド→斜線上でクロックメニュ−右AM0時(鉛直・円周点)
にすると、斜線上から指定点までの垂直線が引けます。

2:斜線上でクロックメニュ−右PM1時(鉛直角)で
指定点から斜線と直角に線が引けます。


3:斜線上でクロックメニュ−の 右PM4時(線角度)にすると、
斜線と平行線が引けます。
コントロ−ルバ−の「水平・垂直」にチェックを入れると
水平・垂直線 及び 斜線に対しての平行・垂直線が引けます。

4:右PM5時(軸角取得)で、コントロ−ルバ−の「水平・垂直」に
チェックを入れると斜線に対しての平行・垂直線が引ける。    

5:左PM6時(全 属性取得)で、斜線の線色・線長さ・角度を取得し、 
斜線に対しての平行線が引ける。
コントロ−ルバ−の「水平・垂直」にチェックを入れると、
線色・線長さ・角度を取得に加えて、水平・垂直線 及び 斜線に対しての
平行・垂直線が引けます。


Indexへ
(26083)←【26084】→(26086)
------------------------
【タイトル】Re(1):任意の線の鉛直線について
【記事番号】 26084 (26083)
【 日時 】05/01/18 01:38
【 発言者 】じゅ

▼じゅさん:
>下記の4以外の方法で作図しますと、
>測定結果に はるか細かい部分に 端数がでます。
>89度59分59秒999984
>とか
>90度00分00秒000009
>
>とか
>
>気になりだしたら気になるのですが・・・
>そういうものなのでしょうか?

すべての方法を 各10本 任意の角度でやってみましたが、
どの方法でも誤差がでるようです。
私のだけでしょうか?

今まで全く気にせずに使ってきたのですが、
気になると気になるものです。笑

皆さんは同じ現象になりますか?


Indexへ
(26084)←【26086】→(26133)
------------------------
【タイトル】Re(2):任意の線の鉛直線について
【記事番号】 26086 (26084)
【 日時 】05/01/18 05:02
【 発言者 】三五六

▼じゅさん:
おはようございます。

現状では、この誤差は出ますね。
他のCADではどうでしょうか?

この誤差の根源は、CPU内の数値演算プロセッサの計算誤差に
由来します。(たぶん)

jwwでは(他のCADは違うのかも)線分データは、始点座標と
終点座標で表現され角度の情報は持っていません。
角度は必要なときに座標値から変換されます。

また、角度を指定して描くときには角度から座標値へ変換されます。
また、線分(図形)を回転するときには、角度への変換と座標値への
変換の両方が行われます。(たくさんの演算が行われる)

ほとんどの三角関数演算では、結果に誤差を含みます(有効14桁程度)
三角関数演算の都度(精度を犠牲にして)数値を丸めれば、目立つ誤差
(水平線垂直線が微妙に傾く等わかり易い誤差)を抑止できる可能性
は有ると思います。が、精度は下がりますし、速度も下がります。
CPUが丸めてくれれば好いのですが…
CPUではなくて演算ライブラリかな?もしかして

jgawk、excel等でも同様に誤差が出ますので、ソフト的に対処するに
は、外部変形プログラム等でも同様の対処が必要となります。

注)文中の「座標」「座標値」は直交座標(X-Y座標)系を指す。

三五六

>▼じゅさん:
>>下記の4以外の方法で作図しますと、
>>測定結果に はるか細かい部分に 端数がでます。
>>89度59分59秒999984
>>とか
>>90度00分00秒000009
>>
>>とか
>>
>>気になりだしたら気になるのですが・・・
>>そういうものなのでしょうか?
>
>すべての方法を 各10本 任意の角度でやってみましたが、
>どの方法でも誤差がでるようです。
>私のだけでしょうか?
>
>今まで全く気にせずに使ってきたのですが、
>気になると気になるものです。笑
>
>皆さんは同じ現象になりますか?


Indexへ
(26086)←【26133】→(26134)
------------------------
【タイトル】Re(3):任意の線の鉛直線について
【記事番号】 26133 (26086)
【 日時 】05/01/19 13:49
【 発言者 】rj

▼三五六さん,じゅさん:

>現状では、この誤差は出ますね。

ナルホド。気づきませんでした。

ところで
これらのデータを角度取得から
線角度、2点間角度、軸角取得してからX軸角度 など取得した場合には、ぴったりの数値になるようです。

これは取得した角度に誤差が入らないよう数値を丸めてくれていると考えて良いのでしょうか?


Indexへ
(26133)←【26134】→(26135)
------------------------
【タイトル】Re(4):任意の線の鉛直線について
【記事番号】 26134 (26133)
【 日時 】05/01/19 14:35
【 発言者 】スター

▼rjさん:
>▼三五六さん,じゅさん:
>
>>現状では、この誤差は出ますね。
>
>ナルホド。気づきませんでした。
>
>ところで
>これらのデータを角度取得から
>線角度、2点間角度、軸角取得してからX軸角度 など取得した場合には、ぴったりの数値になるようです。
>
>これは取得した角度に誤差が入らないよう数値を丸めてくれていると考えて良いのでしょうか?

ためしに、任意の円を描きその円の中心を通る線を描き半円を作成し、データを出力したところ、円の始点角度、終点角度が以下のような誤差が生じます。
31.1757004957386 211.175700495739
これは倍精度目一杯としても有効桁数に限りがあるため、始点が31と2桁で終点が211と3桁になり、結果的に最後の桁で386が39に丸められてしまいます。
測定等の角度表示はおおむね13桁程度に丸めてあるので、90°や180°と表示されていても実際には、90°や180°ではないと考えるのが妥当と思われます。


Indexへ
(26134)←【26135】→(26137)
------------------------
【タイトル】Re(5):任意の線の鉛直線について
【記事番号】 26135 (26134)
【 日時 】05/01/19 15:16
【 発言者 】rj

▼スターさん 検証ありがとうございます。

僕が試してみたのは

1 斜め線と鉛直線が X になっている
2 (―)角度 で + に回転移動 (縦線か横線どちらに誤差が含まれる)
3 (線角度0度はなぜか取得できないので)誤差の線が横線の場合は90度回転移動させて縦線が誤差の線となるようにする
4 線コマンドで縦線の線角度を取得した線を書く。

これで水平線との2点間角度を測定すると
3の誤差のある線と水平線は90度とならないのは当然ですが、
その線を線角度取得した4の線と水平線との線角度は90度ぴったりに測定されます。

取得した線角度に誤差が含まれる場合は、この測定値にも誤差が入り込みそうに思うのですが…。


Indexへ
(26135)←【26137】→(26144)
------------------------
【タイトル】Re(6):任意の線の鉛直線について
【記事番号】 26137 (26135)
【 日時 】05/01/19 15:56
【 発言者 】スター

▼rjさん:
>▼スターさん 検証ありがとうございます。
>
>僕が試してみたのは
>
>1 斜め線と鉛直線が X になっている
>2 (―)角度 で + に回転移動 (縦線か横線どちらに誤差が含まれる)
>3 (線角度0度はなぜか取得できないので)誤差の線が横線の場合は90度回転移動させて縦線が誤差の線となるようにする
>4 線コマンドで縦線の線角度を取得した線を書く。
>
>これで水平線との2点間角度を測定すると
>3の誤差のある線と水平線は90度とならないのは当然ですが、
>その線を線角度取得した4の線と水平線との線角度は90度ぴったりに測定されます。
>
>取得した線角度に誤差が含まれる場合は、この測定値にも誤差が入り込みそうに思うのですが…。

例えば×をどのような方法で作図してもデータとしては下記のようなx,y座標になります。この時点で誤差が発生します。
このx,y座標からエクセル(ちょっと精度が悪い)で方位差を計算すると以下のようになります。
水平と垂直で構成されない限り必ず誤差は発せします。しかし、下記でもわかるようにきわめて微少な値です。
作図の繰り返しが誤差を大きくします。特に角度を用いた場合に現れやすいでしょう。線角度を例にとれば、同一条件で書かれた同一角度の線であれば、10mの線より1m線で線角度を拾った方が明らかに誤差は大きくなります。dxとdyで方位を計算するのでdx,dyの差が大きい方が正しい答えに近づきます。
   x             y    
-8355.5602244823400000     -6577.4490275207900000
10050.0075814714000000     5940.1915457978400000
-6593.8182178671200000     8768.2510827328000000
4899.3708608781000000     -8130.9936010098500000

  dx            dy           方位    
18405.5678059537000000  12517.6405733186000000 34.2196494820358000
11493.1890787452000000 -16899.2446837427000000 -55.7803505200000000
方位差 度  90.0000000020359000     
    度  90.0000000000000000     
    分  0.0000000000000000     
    秒  0.0000073291516856


Indexへ
(26137)←【26144】→(26146)
------------------------
【タイトル】Re(7):任意の線の鉛直線について
【記事番号】 26144 (26137)
【 日時 】05/01/19 17:26
【 発言者 】rj

さすがスターさん、検証方法も高度な感じがします。

>水平と垂直で構成されない限り必ず誤差は発せします。しかし、下記でもわかるようにきわめて微少な値です。
>作図の繰り返しが誤差を大きくします。

このあたりは了解です。


ただ、先ほどの私の幼稚な検証方法だと
「“誤差を含んだ限りなく垂直に近い線”を、線角度取得して線を引くと
“誤差のないまったく垂直な線”として作図される」
ようなのが、ちょいと不思議です。


Indexへ
(26144)←【26146】→(26149)
------------------------
【タイトル】Re(8):任意の線の鉛直線について
【記事番号】 26146 (26144)
【 日時 】05/01/19 17:37
【 発言者 】スター

▼rjさん:
>さすがスターさん、検証方法も高度な感じがします。
>
>>水平と垂直で構成されない限り必ず誤差は発せします。しかし、下記でもわかるようにきわめて微少な値です。
>>作図の繰り返しが誤差を大きくします。
>
>このあたりは了解です。
>
>
>ただ、先ほどの私の幼稚な検証方法だと
>「“誤差を含んだ限りなく垂直に近い線”を、線角度取得して線を引くと
>“誤差のないまったく垂直な線”として作図される」
>ようなのが、ちょいと不思議です。

いま/で角度を1e-6(0.0036秒)までは受け付けますがそれより小さい角度を受け付けませんでした。
なんかありそうですね。


Indexへ
(26146)←【26149】→(26150)
------------------------
【タイトル】Re(9):任意の線の鉛直線について
【記事番号】 26149 (26146)
【 日時 】05/01/19 18:18
【 発言者 】スター

▼スターさん:
>▼rjさん:
>>ただ、先ほどの私の幼稚な検証方法だと
>>「“誤差を含んだ限りなく垂直に近い線”を、線角度取得して線を引くと
>>“誤差のないまったく垂直な線”として作図される」
>>ようなのが、ちょいと不思議です。
>
>いま/で角度を1e-6(0.0036秒)までは受け付けますがそれより小さい角度を受け付けませんでした。
>なんかありそうですね。
上記線分を端点移動で角度を小さくして
0.00000018°の線は角度を取得できましたが1桁したの
0.000000018°は0°になり鉛直線は完璧な垂線になりました。
この辺で平行等の判定をしているのでしょう。


Indexへ
(26149)←【26150】//(26089)
------------------------
【タイトル】Re(10):任意の線の鉛直線について
【記事番号】 26150 (26149)
【 日時 】05/01/19 18:28
【 発言者 】rj

▼スターさん:

>0.000000018°は0°になり鉛直線は完璧な垂線になりました。
>この辺で平行等の判定をしているのでしょう。

了解です。
お手数おかけしました。ありがとうございます。