• ベストアンサー

始点、終点の二つの座標と半径からの円弧の長さの求め方。

始点、終点の二つの座標と半径からの円弧の長さの求め方。 こんにちは。数学ずぶの素人です。 座標上に円弧があります。始点、終点の二つの座標と半径が分かっており、これらから円弧の長さを求めたいのですが計算方法が分かりません。 どなたか分かる方、ご教授ください。

  • ykpp
  • お礼率100% (3/3)

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

円弧の長さLは半径rと中心角θが分かれば、L=rθとして求められます。 中心角θは、始点と終点の距離をaとすると、sin(θ/2)=a/(2r)なので、 L=2r*arcsin(a/(2r)) 2点間の距離は分かりますね。 sqrt((x1-x2)^2+(y1-y2)^2)

ykpp
質問者

お礼

早速のご回答ありがとうございます。計算してみたところ、CADで測定したデータとほぼ一致しました。親切で正確なご回答、本当にありがとうございました。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

異なる2点を始点、終点とする、ある半径の円弧は最大4つあります。長さは最大2つあります。 実際に円を書いて、円周上の2箇所に点を付ければわかります。 始点から終点へ短距離で向うのも円弧ですが、ぐるっと遠まわりする長い方も円弧です。 また、始点と終点を結ぶ直線でパタンと裏返すと、反対向きの円弧になります。 短い方と長い方の2種類が表裏の2通りなので、4つの円弧ということになります。 長さを求めるには、短い方なのか、長い方なのか、両方なのかをはっきりさせる必要があります。 短い方の求め方は既に回答があった通り。 なお、角度はラジアン表現であることを付け加えておきます (ラジアン表記: 0°→0, 360°→2π) 長い方は、円周の長さから短い円弧の長さを引いた残りなので L'=2πr - L =2r(π-arcsin(a/(2r))) VisualBasicで計算する場合、最近のなら Mathクラスを有効にして arcsin→Math.Asin π→Math.PI で計算できますが、VB6あたりだと、それぞれ用意する必要があるみたいです。

ykpp
質問者

お礼

なるほど、始点、終点の2つの座標と半径だけでは4通りの円弧が描けてしまうわけですね。私が必要だったのは短いほうの円弧の長さになります。この度は本当にありがとうございました。

関連するQ&A

  • 円弧上にある円弧の長さを二等分する点

    円弧上にある円弧の長さを二等分する点 こんにちは。以前に、始点、終点、半径から円弧の長さを求める方法を教えていただいたものですが、今度はそれらからその円弧上にある円弧の長さを二等分する点の座標を求める必要が出てきました。当方数学はずぶの素人ですので計算方法が分かりません。どなたか分かる方、ご教授の程、よろしくお願いします。

  • 円弧の始点、終点、回り角度から中心点を求める

    円弧の始点座標、終点座標及び回り角度から円弧の中心点座標を求めることは可能でしょうか? よろしくお願いいたします。

  • 円弧の座標から半径を求める式

    10個のy座標、10個のx座標からなる10ピクセルの円弧があります。 この円弧の半径を求める式(添付画像のとおりです)は以下の内容でよろしいでしょうか。 始点(ひとつめのy座標とx座標)とふたつめのy座標とx座標の微分係数が (始点とみっつめの座標、始点とよっつめの座標、、、始点と10個目の座標、  という風に比べて(微分して)いく) 連続的なカーブの閾値以上(π/130)のものを合算し、 要素数(この場合は10)で割る。 こういう意味かな・・・と思っていますが、正しい理解なのかいまいち自信がありません。 座標を配列で比較する限り、答えも2次元配列の値になるので 閾値(π/130)が成り立たないですし、 もしy座標同士だけ、x座標同士だけ、で比べると値が2つ出て 長さで表される「半径」ではないなぁ、と思い困っています。 もしおわかりになりましたら教えてください。 よろしくお願い致します。

  • 2点と半径から、中心座標と円弧を描く方法

    標記件、以下を満足させる式はどのように導けばよろしいでしょうか?ご教示下さい。 (INPUT)  ・始点と終点の2点のXY座標  ・半径r (OUTPUT)  ・中心点座標  ・2点を結ぶ円弧の関数 なお、中心点と円弧は2つ出来るかと思いますが、どちらでも結構です。判別基準があれば教えて頂きたく。 どうぞよろしくお願いします。

  • 円弧の描画について

    円弧の描画について お世話になります。 Visio2007を使用しています。 Visioで円を描画し、その円の情報を基に計算を行い、円弧の作成をしたいと考え ていますが、計算方法が分からずご質問させて頂きました。 以下の【元となる情報】から【求める情報】を計算にて求めます。 【元となる情報】 左上X座標:円の左上X座標 左上Y座標:円の左上Y座標 幅:円の幅 高さ:円の高さ 始点角度:円弧の始点の角度(円の中心から右方向を0度とし       時計回りの角度) 終点角度:円弧の終点の角度(始点角度を0度とし時計回りの角度) (始点角度と終点角度は1度単位で設定をします) 【求める情報】 http://msdn.microsoft.com/ja-jp/library/cc344284.aspx 例えば、 ・始点角度が0度、終点角度が90度の時は円の右下1/4の円弧が作成される ・始点角度が90度、終点角度が180度の時は円の左半分の円弧が作成される 以上の様な円弧を求めるような計算方法をご存知でしたらご教授 お願い致します。

  • 座標値から半径を求めるには

    半径(R)の測定方法は? 3点から5点くらいの座標値を測定器で測定します。 測定した点を通ると仮定した円弧の半径を求める計算式はどうなるのでしょうか? 数学が苦手でさっぱりわかりません。 よろしくお願い致します。

  • 円弧の描画について

    エクセルのワークシート上に2点(x1,y1)、(x2,y2)の座標があり、半径がrと決まっている場合に、(x1,y1)を始点、(x2,y2)を終点とする半径rの円弧を描きたいのですが、VBAで教えていただけますでしょうか? 例えばエクセルのワークシート上に2点(600,400)と(500,300)という座標があります。この座標は、 Dim ShapeA As Shape, ShapeB As Shape Set ShapeA = ActiveSheet.Shapes.AddShape _ (msoShapeOval, 600, 400, 2, 2) Set ShapeB = ActiveSheet.Shapes.AddShape _ (msoShapeOval, 500, 300, 2, 2) というコードでワークシート上に描いています。 この2点をそれぞれ始点、終点として、半径100の円弧を描く方法を考えているのですが、 VBA初心者の為、困っています。VBAで円弧を描く方法がありましたら是非教えていただきたく お願い致します。 よろしくお願い致します。

  • 円弧の半径

    円弧の始点A、終点B、線分ABの垂線と交わる円弧上の点C、線分ABの中心点D、中心点O としたとき、線分AB、CDが求まれば円弧の半径Rが求まると思うんですがどういった式になるのでしょうか R = AB*AB / (8*CD) + CD/2 上の式でいけると聞いたことがあるのですが なんの公式を使えばこうなるのかわかりません できればなにを基に式の変形すればよいか宜敷御願いします。

  • 円弧上座標から計算

    3点の座標からその3点を通る円弧の中心座標と半径は計算できるのでしょうか? できないなら何点あれば半径と中心座標は算出できるのでしょうか?

  • 同一円弧上の座標を求めたいのですが…

    同一直線上の座標(http://oshiete1.goo.ne.jp/kotaeru.php3?q=2432311)で質問したものですが、今度は同一円弧上の座標で悩んでおります。 どなたかお知恵をおかしください。 --- 質問内容 --- 数学的な事がまったく分からないので、質問の文章もおかしいかもしれませんが、よろしくお願いします。 できれば、わかりやすく簡単な公式があれば助かります。 平面において、同一円弧上にある2つのポイントA,Bの座標、円弧の半径(または直径)、ABの弧の長さが分かっている場合、同一円弧上に新たに設けたポイントPの座標を求めるにはどうすればよいですか? Pの位置はその都度変化し、そのときのAとPの弧の長さまたは、BとPの弧の長さのどちらか一方が分かるという条件です。 よろしくお願いします。

専門家に質問してみよう