- ベストアンサー
エクセルでの座標計算の質問
基準座標座標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
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
2.59893E-14 と直接入力し、セルを選択し、数式バーを見ますと「0.0000000000000259893」と表示されます。 ゼロに近いけれど正確ではない数値という事です。 そもそもPI関数で戻る値は桁数が限られていますのでこの関数を噛ませる事による誤差は避けられないと思います。 更にパソコンは2進数ですが、Excelでは10進数ですので、この関数を使用しなくても誤差が出る場合があります。 Excelでは必ずしも手計算と同じ結果が出るとは限りません。 こちらが参考になると思います。 日経PC21からです。 http://pc21.nikkeibp.co.jp/special/gosa/ 数学は得意ではありませんので、まだ数式や計算方法が考え付きませんので、 とりあえず誤差についてだけ書かせていただきました。
その他の回答 (5)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
C2でatan()関数で角度を出しているのが間違いです。どこを基準に どっちに回った角度なのか、全然考えていませんね。 x-y座標から角度の話に変換するなら、atan2(x,y)関数を使いましょ う。これはx軸を基準に、反時計方向に回った角度を-π~πで返しま す。で、これをx軸を基準に反時計方向に0~360度回った角度に変換 しましょう。具体的には =mod(degrees(atan2(A5,B5))+360*sign(B5),360) ですね。 ここまでをちゃんとやっておけば、どっちにどれだけ回そうが、普通 にsin()関数とCOS()関数に距離をかけただけで正しい座標を示しま す。
- wolv
- ベストアンサー率37% (376/1001)
すいません、No.4の回答では、やってること勘違いしました。 G2= =cos(F2)*A2-sin(F2)*B2 H2= =sin(F2)*A2+cos(F2)*B2 こうしてください
- wolv
- ベストアンサー率37% (376/1001)
> 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) とすれば正と負の使い分けについての解決はでできますよ。
何度もすみません G2の =COS(F2*PI()/180)*D2 ですが、 =COS(RADIANS(F2))*D2 とすることもできます。 =角度/180*PI() → =RADIANS(角度) ですので。 F2も同様に =SIN(RADIANS(F2))*D2 でも大丈夫です。 計算結果は同じです。 PI関数に限らず、セルのほとんどに誤差が生じているのではないでしょうか。
あ、それから C2 =ATAN(B1/B2)/(PI()/180) D2 =SQRT(B1*B1+B2*B2) または D2 =SQRT(B1^2+B2^2) だと思うのですが・・・。細かい事を言ってすみません。