[解決済み] ある点が線分上の他の2点の間にあると、どのように判断するのでしょうか?
2022-10-22 06:08:42
質問
2次元の平面上に2つの点(a、bと呼ぶ)があり、各点がxの整数とyの整数で表されているとする。
aとbで定義される線分上に別の点cがあるかどうかは、どのように判断すればよいでしょうか。
私はpythonを最も使用していますが、どの言語でも例があれば助かります。
どのように解決するのですか?
を確認します。 クロスプロダクト が0であるかどうかを調べると、Darius Baconが言うように、点a, b, cが一直線上にあるかどうかがわかります。
しかし、cがaとbの間にあるかどうかを知りたいのですから、そのためには ドット積 であり、(b-a) と (c-a) は 正 であり より少ない は a と b の距離の二乗より小さい。
最適化されていない擬似コードでは
def isBetween(a, b, c):
crossproduct = (c.y - a.y) * (b.x - a.x) - (c.x - a.x) * (b.y - a.y)
# compare versus epsilon for floating point values, or != 0 if using integers
if abs(crossproduct) > epsilon:
return False
dotproduct = (c.x - a.x) * (b.x - a.x) + (c.y - a.y)*(b.y - a.y)
if dotproduct < 0:
return False
squaredlengthba = (b.x - a.x)*(b.x - a.x) + (b.y - a.y)*(b.y - a.y)
if dotproduct > squaredlengthba:
return False
return True
関連
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Pythonスクリプトのプロファイリングはどのように行うのですか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み] 2つの緯度経度点間の距離を計算する?(ハバーシンの公式)
-
[解決済み] 点から線分までの最短距離
-
[解決済み】Pythonで複数のコンストラクタを持つためのクリーンでPythonicな方法は何ですか?
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する