【お題】NEW演歌

基準座標座標X-300 Y-300 の点を X0Y0を中心に回した計算式です
E2に回転したい角度を入れて計算します


A1= X 基準座標 A2= -300

B1= Y 基準座標 B2= -300

C1= 基準角度 C2= 45       C2式 =ATAN(A2/B2)/(PI()/180)

D1= 中心からの距離 D2= 424.2640687   C2式 =SQRT(A2*A2+B2*B2)

E1= 回転角度 E2= 0

F1= 合計角度 F2= 45 C2式=C2+E2

G1= X 答え G2= 300 C2式=COS(F2*PI()/180)*D2

H1= Y 答え H2= 300 C2式=SIN(F2*PI()/180)*D2


このとき回転角度E2の値を換えて計算をしたいのですが
45とか135を入れると合計角度が 90度180度になり
XかYの答えが0になるのですが 2.59893E-14
このような答えになります この文字列は何でしょうか?
答えを0にはできませんか

(注意)
  まだ未完成です正と負の使い分けが出来ていません
  X-300Y-300で角度を振ってないのに答えは180度
  振った答えになっています (これも未解決)


EXCEL2000
WINXP

A 回答 (6件)

2.59893E-14 と直接入力し、セルを選択し、数式バーを見ますと「0.0000000000000259893」と表示されます。


ゼロに近いけれど正確ではない数値という事です。

そもそもPI関数で戻る値は桁数が限られていますのでこの関数を噛ませる事による誤差は避けられないと思います。
更にパソコンは2進数ですが、Excelでは10進数ですので、この関数を使用しなくても誤差が出る場合があります。
Excelでは必ずしも手計算と同じ結果が出るとは限りません。

こちらが参考になると思います。

日経PC21からです。
http://pc21.nikkeibp.co.jp/special/gosa/

数学は得意ではありませんので、まだ数式や計算方法が考え付きませんので、
とりあえず誤差についてだけ書かせていただきました。

参考URL:http://pc21.nikkeibp.co.jp/special/gosa/
    • good
    • 0

C2でatan()関数で角度を出しているのが間違いです。

どこを基準に
どっちに回った角度なのか、全然考えていませんね。

x-y座標から角度の話に変換するなら、atan2(x,y)関数を使いましょ
う。これはx軸を基準に、反時計方向に回った角度を-π~πで返しま
す。で、これをx軸を基準に反時計方向に0~360度回った角度に変換
しましょう。具体的には
=mod(degrees(atan2(A5,B5))+360*sign(B5),360)
ですね。

ここまでをちゃんとやっておけば、どっちにどれだけ回そうが、普通
にsin()関数とCOS()関数に距離をかけただけで正しい座標を示しま
す。
    • good
    • 0

すいません、No.4の回答では、やってること勘違いしました。



G2= =cos(F2)*A2-sin(F2)*B2
H2= =sin(F2)*A2+cos(F2)*B2
こうしてください
    • good
    • 0

> A1= X 基準座標 A2= -300


> B1= Y 基準座標 B2= -300
> E1= 回転角度 E2= 0

までをそのままつかうなら、

F1= 回転角度(ラジアン) F2= =E2/180*PI()
G1= X 答え G2= =A2+cos(F2)*(A1-A2)-sin(F2)*(B1-B2)
H1= Y 答え H2= =B2+sin(F2)*(A1-A2)+cos(F2)*(B1-B2)

とすれば正と負の使い分けについての解決はでできますよ。
    • good
    • 0

何度もすみません



G2の
=COS(F2*PI()/180)*D2
ですが、
=COS(RADIANS(F2))*D2
とすることもできます。
=角度/180*PI()  → =RADIANS(角度) ですので。

F2も同様に
=SIN(RADIANS(F2))*D2
でも大丈夫です。

計算結果は同じです。
PI関数に限らず、セルのほとんどに誤差が生じているのではないでしょうか。

参考URL:http://sakai.elec.hkg.ac.jp/BASIC_Math/04.htm
    • good
    • 0

あ、それから



C2 =ATAN(B1/B2)/(PI()/180)

D2 =SQRT(B1*B1+B2*B2)
または
D2 =SQRT(B1^2+B2^2)

だと思うのですが・・・。細かい事を言ってすみません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報