
No.5ベストアンサー
- 回答日時:
No.1,2です。
外積を習っているかを全く考えていませんでした。
最初の外積の値は
(x2-x1)*(y5-y1)-(y2-y1)*(x5-x1)
となります。
残りも同じような式になります。
No.4の回答と考え方は同じなのですが、割り算がないため鉛直部分を考慮しなくてもよいので、一般的にはこの方法を使います。
先に触れましたように、凸図形の場合に一般的に使える方法です。(全ての内角が180度以下)
凹部(180度以上の内角)がある場合には凸図形に分解すれば同じ論理でできます。三角形に分解すると確実に凸図形に分解できます。
以上ご参考に
No.4
- 回答日時:
質問された方の年齢を存じ上げないのですが、高校生以上の方ですよね?
中学あたりで直線を式で表す問題を解いたと思います。
例えば、図の一番上の一辺を式で表すと、
y-y4=(y4-y1)/(x4-x1)*(x-x4)
です。
移行してy=の式にし、xにx5を代入します。
そして得られたyは直線上のx座標がx5だったときのyの値となります。
この値がy5より小さければ、Eは直線より下ってことですよね。
これを四つの辺に対して調べればOKです。
この方法の弱点は辺が鉛直のとき傾きが無限大(小)となってしまい、計算できなくなることです。
上手く場合わけして回避してください。
私、実はVBを使ったことがないので、もっと簡単な方法があるかもしれません。
分かりにくい説明で申し訳ありませんでした。
No.3
- 回答日時:
方法1
点ABCDEをすべて、点Eが原点になるように平行移動させる。∠AEB+∠BEC+∠CED+∠DEAを計算します。その値が2πまたは-2πに近ければ内部、0に近ければ外部。近いというのは計算誤差が発生するため。
角度は内積を使用して求める。
方法2
点ABCDEをすべて、点Eが原点になるように平行移動させる。線分AB、BC、CD、DAがX軸の正の部分と交差する数を求める。偶数なら外部、奇数なら内部。
No.1
- 回答日時:
ベクトルABと、ベクトルAEの外積
ベクトルBCと、ベクトルBEの外積
ベクトルCDと、ベクトルCEの外積
ベクトルDAと、ベクトルAEの外積
を計算し、全て同じ符号になれば内側にあることが分かります
要するに辺のベクトルの方向に対して同じ方向(この場合は必ず左側)にEがあります。
ただし、二次元ですので、三次元に拡張して(Z=0)とおいて、計算するとX=0, Y=0となりZだけが値を持ちます。
それで判断します。
凸図形の場合には同じ性質があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
構文解析を利用した計算プログ...
-
エクセルで特定のセルのみを任...
-
EXCELなどで「返す」という表現
-
傾いた四角形内の範囲の条件式
-
タクシー料金の問題です
-
モジュラス103の計算とは何でし...
-
C言語の課題で、1年の秒数を計...
-
C# C1FlexGrid SUBTOTAL で計算式
-
【fortran77】データ行数のカウ...
-
整数aを入力し、aの2乗、3乗...
-
C言語の勉強をしていて、for文...
-
y=(x^2 +3x+1)^4を微分の定義を...
-
排他的論理和 BCC(水平パリテ...
-
数値計算の高速化 (cos, sin, exp)
-
パソコン
-
VB6.0で時間の計算方法
-
matlabで計算終了
-
パチンコゲームを作りたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
EXCELなどで「返す」という表現
-
matlabで計算終了
-
変化させるセルが変化しない
-
排他的論理和 BCC(水平パリテ...
-
モジュラス103の計算とは何でし...
-
傾いた四角形内の範囲の条件式
-
VBAで関数をつくる
-
[急募]Pythonについてです。
-
数値計算の高速化 (cos, sin, exp)
-
切り上げたい
-
C言語についての質問です。 ル...
-
DLL(VC++で作った)で稼動中の...
-
CとFORTRANの計算速度はどちら...
-
CGIの実行権限(ディスク容...
-
趣味で「乗換案内」みたいなソ...
-
エクセルで特定のセルのみを任...
-
functionを含んだプログラムを...
-
単価や利率などを設定画面を設...
おすすめ情報