• ベストアンサー

4点の座標がわかっているときの四角形の面積

平面上の4点の座標がわかっていれば、四角形の形状は一義的に決まるものでしょうか。もし、きまるものなら、その面積の算出方法について教えてください。 点A(Xa、Ya) 点B(Xb、Yb) 点C(Xc、Yc) 点D(Xd、Yd) とします。 よろしくお願いします。

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

  • ベストアンサー
  • staratras
  • ベストアンサー率40% (1444/3522)
回答No.4

No.3です。添付したグラフの縦横の比率がおかしいので再送します。失礼しました。

kkanrei
質問者

お礼

ありがとうございました。エクセルで任意に打ち込めば自動で面積を計算できる方法はないでしょうか。エクセルには他のソフトからとりこんだ数値をそのままペーストして貼り付けるので順番が公式の適用できる順とは限らないのですが。

kkanrei
質問者

補足

たくさんの方に親切に回答いただきました。ありがとうございました。みなさんをベストアンサーしたいのですが、今回はグラフ付きで解説くださった方をベストアンサーに選ばせていただきます。重ねてありがとうございました。

その他の回答 (7)

回答No.8

Excel等で計算するときには次の方法も便利です。4角形だけでなくn多角形に応用できます。また凸ではなく凹多角形でも使えます。 ストークスの定理(平面のグリーンの定理)を応用します。(面積分と線積分の関係) ∬dxdy=∮(xdy-ydx)   左側は面積分、右側は線積分です。多角形だ左側の積分がΣで整理できます。 具体的には、n多角形の頂点をP0,P1,・・・,Pn-1とします。またPn=P0とします。付番は左回りに付けます。 面積S=1/2Σ(Xi・Yi+1-Xi+1・Yi) i=0~n-1 で計算できます。 例 Pi Xi Yi Xi・Yi+1 Xi+1・Yi P0 1.0 1.0 0.5 2.0 P1 2.0 0.5 6.0 1.5 P2 3.0 3.0 6.0 3.0 P3 1.0 2.0 1.0 2.0 P4 1.0 1.0 13.5 8.5 S=(13.5-8.5)/2=2.5

kkanrei
質問者

お礼

ありがとうございました。そんな定理もあったんですね。活用させていただきます。

  • maitta26
  • ベストアンサー率0% (0/2)
回答No.7

凸型の四角形ができる場合。線分ABの方程式を求めます。f(x,y)=0とします。F(x,y)に点C、Dの座標をそれぞれ代入して、正負の符号を調べます。異符号になるとき、線分ABは対角線の可能性があります。次に線分CDの方程式を求め、ABとCDの共有点を求めます。この線分が交わるとき、ABとCDは対角線です。

kkanrei
質問者

お礼

ありがとうございました。教えていただいた方法を応用してなんとかエクセルで自動計算ができそうですね。

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.6

A No.2 が普通だと思うが、二分割するよりも、 対角線の交点を原点にして、四分割するほうが、 私は好き。

kkanrei
質問者

お礼

ありがとうございました。どの点とどの点を結べば対角線になるのか自動で認識できる方法があれば、エクセルに座標を任意に打込めば面積計算できそうですね。そんな方法もないでしょうか。よろしくお願いします。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.5

 4点が同一平面上にあれば、幾何で出せるでしょう。     ^^^^^^^^^^^^^^^^^^  方法はいろいろあります。二つの三角形に分けて正弦定理やヘロンの公式で。  交差する平面の場合も同様。  平面でない曲面の場合も面積を出すなら、(平面も含めて)解析--方程式をつかって解くことになります。曲面の場合は曲面を示す式が必要です。例えば地球の表面上の4点とか・・

kkanrei
質問者

お礼

ありがとうございました。

  • staratras
  • ベストアンサー率40% (1444/3522)
回答No.3

具体的に4点の座標がわかっているのであれば、グラフに描けば、比較的容易に求められると思います。 添付したグラフは一例です。四角形ABCDの周囲に、四角形ABCDを取り囲む、各頂点が四角形の4頂点A、B、C、DのX座標、Y座標のうち最大と最小の値の組み合わせとなるような長方形EFGHを作ります。この例ではX座標の最大値はXd、最小値はXb、Y座標の最大値はYd、最小値はYcなので、DとHは一致します。 求めたい四角形ABCDの面積Sは、長方形EFGHの面積から4つの三角形EBA、FCB、GDC、HEAの面積を引いたものです。 S=(Xd-Xb)(Yd-Yc)-1/2((Xa-Xb)(Yd-Yb)+(Xc-Xb)(Yb-Yc)+(Xd-Xc)(Yd-Yc)+(Xd-Xb)(Yd-Ya)) 上の式は、4点A、B、C、Dの位置関係によって変わりますので、面積を求める万能の公式ではありませんが、具体的に4点の座標が与えられて面積を求めるのであれば、このやり方がわかりやすいのではないでしょうか。

kkanrei
質問者

お礼

ありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

対角線を引いて 2個の三角形に分割しそれぞれ面積を求めればいいというのは #1 の通りだけど, 座標が分かっているならヘロンの公式を使わなくてもいい. 原点O と 2点 A(a, b), B(c, d) からなる三角形の面積を計算してみればわかる.

kkanrei
質問者

お礼

ありがとうございました。

  • tadys
  • ベストアンサー率40% (856/2135)
回答No.1

二つの点の座標が同じだったり、3つの点が直線上にあれば、4角形にはなりません。 上記の場合を除けば一義に決まります。 4角形に1本の対角線を引いて二つの3角形を作り、3角形の面積をヘロンの公式で求めて合算すれば求められます。 ヘロンの公式では辺の長さが必要です。 点の座標から辺の長さを求めるにはピタゴラスの定理を使います。 ヘロンの公式 http://ja.wikipedia.org/wiki/%E3%83%98%E3%83%AD%E3%83%B3%E3%81%AE%E5%85%AC%E5%BC%8F ピダゴラスの定理 http://www.google.co.jp/#hl=ja&gs_rn=8&gs_ri=psy-ab&cp=2&gs_id=24&xhr=t&q=2%E7%82%B9%E9%96%93%E3%81%AE%E8%B7%9D%E9%9B%A2&es_nrs=true&pf=p&biw=1060&bih=708&sclient=psy-ab&oq=%EF%BC%92%E3%81%A6&gs_l=&pbx=1&bav=on.2,or.r_qf.&bvm=bv.44990110,d.dGI&fp=51232f1babb25a50

kkanrei
質問者

お礼

ありがとうございました。

関連するQ&A

  • 座標値を求める計算式が知りたい!

    下図のように、点座標、点A(Xa,Ya)、点B(Xb,Yb)、点C(Xc,Yc)が与えられているとき、D点の座標値、Xd, Ydを求める式を教えてください。

  • 点と直線に関する質問

    点A,Bを結ぶ直線ABと、直線AB上に無い点Cがあり、点Cから直線ABへ下ろした垂線Lと、直線ABとの交点Dを求める方法に関する質問です。 当方は、座標に経度・緯度を使っており、点A,B,Cの座標(位置情報)は既知です。まず、点A,Bを結ぶ直線を求め、次にその直線と垂直に交わる直線の傾きbを求め、傾きbで点Cを通る直線と直線ABとの交点を求め、点Dとしました。しかし、求めた点Dを地図ソフト(SIS)上にプロットしてみると、かなりのずれ(50~100m)が生じてしまいました。 距離は数十~数百メートル程度のオーダーです。 点の座標A(XA,YA),B(XB,YB),C(XC,YC),求める点D(XD,YD)とし、ABの傾きa=(YB-YA)/(XB-XA)、ABと垂直に交わる直線の傾きb=-(XB-XA)/(YB-YA)とおくと、点Dの座標は、XD=(a*XA-YB-b*XC+YC)/(a-b),YD=b*(XD-XC)+YCであるとして、求めました。 この問題はやはり球面座標で考えるべきなのでしょうか?当方、球面座標に関しては全くの無知でして、このような時はどのようにして求めればよろしいのでしょうか?式など示して頂ければありがたいですが、何か関連する情報やヒントでも結構ですので、アドバイスの方、どうぞ宜しくお願いします。

  • 3次元空間での平面の式の算出

    ある3次元空間内に原点と点A(xa, ya, za)を通る直線と任意の点B(xb, yb, zb)があるとします。 点Bから直線への垂線の足をC(xc, yc, zc) としたとき, まず, ・ C(xc, yc, zc)を xa, ya, za, xb, yb, zb であらわしたい。 次いで, ・BおよびCを含む平面の式を導出したい。 以上のような問題なのですが,上手く算出することができません。 アドバイスをいただけたらと思い,書き込みさせていただきました。 よろしくお願いします。

  • 2直線が直交する点の求め方が分かりません

    数学で分からない問題があるので質問させていただきます。 3つの点 A(Xa,Ya,Za)、B(Xb,Yb,Zb)、C(Xc,Yc,Zc)与えられているとして、 点A,Bを通る直線ABに、点Cから垂直に線を引く場合に、 2直線の交点D(X,Y,Z)の座標を求める方程式が分かりません。 (Xb-Xa)(X-Xc)+(Yb-Ya)(Y-Yc)+(Zb-Za)(Z-Zc)=0 一つは思いつきましたが、変数が3つあるのであと2つ 式が必要になると思います。 分かる方がいたら教えていただけませんか。 よろしくお願いします。

  • エクセルを用いた3次元座標の回転・平行移動の方法: 対応する座標点間距離の最小化

    対応する3つの3次元座標間の最小二乗距離の総和を最小化する方法を教えていただけないでしょうか。 それぞれ3座標点を含む2つのデータセットがあるとします。 片方のデータセットを回転・平行移動させることにより、 対応する3座標点間の最小二乗距離の総和を最小化したいのですが、 その方法を教えてください。 例: データセットA:(xa1, ya1, za1), (xa2, ya2, za2), (xa3, ya3, za3) データセットB:(xb1, yb1, zb1), (xb2, yb2, zb2), (xb3, yb3, zb3) データセットBを回転・平行移動したもの:(xb1', yb1', zb1'), (xb2', yb2', zb2'), (xb3', yb3', zb3') そして対応する3座標点間の最小二乗距離の総和: (xa1-xb1')^2+(xa2-xb2')^2+(xa3-xb3')^2+ (ya1-yb1')^2+(ya2-yb2')^2+(ya3-yb3')^2+ (ya1-yb1')^2+(ya2-yb2')^2+(ya3-yb3')^2 を最小化したい。 つまり、これを最小化するためのデータセットBの回転・平行移動の方法をしりたいのです。 よろしくお願いします。  

  • 正三角形の重心の座標、各角の座標

    去年、別の人がやっていたプログラムを見ていたのですが、どうしても分からない部分があったので、皆さんにお尋ねしたいと思います。よろしくお願いします。 前提として、xy平面状で、正三角形の重心C(x,y)と一つの角A(xa,ya)の座標が分かっています。 そのとき、他の2つの角(仮にB(xb,yb),C(xc,yc)とします)の座標を求めるにはどうしたら良いのでしょうか? プログラムでは、重心と、角Aのx系、y系との距離と、arctanとか使って角度を求めたりしているようなのですが、さっぱり分かりません。 皆様、よろしくお願いします。

  • 2点を結ぶ直線を垂直に移動

    2点(xa1,ya1とxa2,ya2)を結ぶ直線を垂直に移動(b)したときの2点(xb1,yb1とxb2,yb2)の算出方法を教えてください。

  • ゼネラルフローチャートの作り方。

    数値解析実習という授業で「補間法」をやっているのですが このプログラムのディテールフローチャートは書けるのですが ゼネラルフローチャートをどのようにかいていいのかがわかりません。 「開始」  ↓ 「変数宣言」  ↓ この先どうなるのでしょう??? #include <stdio.h> #include <math.h> void main(void) { double xa,xb,xc,h; double ya,yb,yc; double xx,yy,dela,delb,del2a; printf("3点のx座標a,b,c="); scanf("%lf%lf%lf",&xa,&xb,&xc); printf("3点のy座標fa,fb,fc="); scanf("%lf%lf%lf",&ya,&yb,&yc); printf("補間点のx座標x="); scanf("%lf",&xx); h=xb-xa; dela=yb-ya; delb=yc-yb; del2a=delb-dela; /*二次補間公式*/ yy=ya+dela/h*(xx-xa)+del2a/(2.0*h*h)*(xx-xa)*(xx-xb); printf("補間点f(%lf)=%lf\n",xx,yy); } ディテールは細かく書くだけっぽいのでそのまま出来たのですが・・・。 ゼネラルのほうがおおまかな流れを書くみたいですがどこを書いて良いのかわかりません。 教えてください。

  • 垂線の長さを求めたい。

     今、V.B.でプログラムを作っているんですが、『垂線の求め方』が分からなくて困っています。 問題は以下の通りです。 ・2点(xa,ya),(xc,xy)を通る直線Aと、2点(xb,yb),(xd,yd)を通る直線Bとの交点から、 2点(x1,y1),(x2,2)を通る直線におろす垂線の長さを求めたい。 回答の方、よろしくお願いします。

  • エクセルでそれぞれの合計を纏めたい

    以下のようなデータ(膨大です)があるのですが、 9月1日 A(商品名)XA(単価)YA(売上数)ZA(単価×売上数)     B     XB    YB     ZB     C     XC    YC     ZC  … 9月2日 A     XA    YA     ZA     B     XB    YB     ZB     C     XC    YC     ZC      … 表にするとかえって分かりにくいですが、要するに商品が400種類くらいあって、9月1日~30日の間にそれぞれ売上があったというわけです。 その400種類の商品の9月分のそれぞれの売上個数の合計と、それぞれの売上金額の合計を算出したいのです。つまり 9月 A  XA  YA合計  ZA合計 B  XB  YB合計  ZB合計 C  XC  YC合計  ZC合計 … というように纏まった表を作りたいのです。 説明が下手で本当に恐縮ですが、エクセルで私の望むような計算はできますでしょうか?