質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

4923閲覧

長方形の四隅の座標を求める

Ykkykk

総合スコア140

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/11/28 01:21

編集2018/11/28 01:37

長方形の四隅の座標を求めたいと思っています。

長方形の各辺の長さと対角線の交点の座標がわかっています。

そこで、こちらのサイトを参考に座標を求めようとしているところでわからないことがあります。

対角線の交点の座標を上記のサイトにおける座標Aとし、距離Dを交点で等分された対角線の長さ、各頂点の座標を座標Bとした場合、距離Dの長さや角度θはすべて同じになるため、計算結果としては一つの値が求まると思います。

このような場合、どのように四点の座標を求めるのでしょうか?

また、長方形の四辺の長さと対角線の交点の座標がわかっているだけでは上記のサイトの式を使用して頂点の座標を求めることはできないのでしょうか?
交点を中心に長方形が回転する可能性を考えると、そもそも座標を一意に決めることができないようにも思います。

ご教示いただけますと幸いです。よろしくお願いいたします。

##修正
コメントで頂いた通り、各象限で角度は変わります。すみませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karamarimo

2018/11/28 01:27

「角度θはすべて同じに」ならないのではないでしょうか。
Lhankor_Mhy

2018/11/28 01:32

中心を原点として各頂点への「角度θはすべて同じ」にはならないのでは。θはx軸正方向を0,2πとする値なので、象限が違えば値も違いますよ。
Ykkykk

2018/11/28 01:34

コメントいただきありがとうございます。象限で考えるべきですね。長方形の内部で分割された直角三角形だけを見ていました。ありがとうございます。
guest

回答3

0

ベストアンサー

長方形の自由度は2なので、対角線の角度tと長さlがあれば一意に決めることができます。
ただし、回転を考慮する場合には、さらに回転角が必要になります。

中心を原点、回転角を0とした時の各頂点の座標は、以下のとおりです。

js

1pi = Math.PI; 2[ x1, y1 ] = [ Math.cos(t)*l/2, Math.sin(t)*l/2 ]; 3[ x2, y2 ] = [ Math.cos(pi-t)*l/2, Math.sin(pi-t)*l/2 ]; 4[ x3, y3 ] = [ Math.cos(pi+t)*l/2, Math.sin(pi+t)*l/2 ]; 5[ x4, y4 ] = [ Math.cos(-t)*l/2, Math.sin(-t)*l/2 ];

投稿2018/11/28 02:17

編集2018/11/28 02:19
Lhankor_Mhy

総合スコア36134

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ykkykk

2018/11/28 02:22

ご回答いただきありがとうございます。頂いた計算は、長方形の上辺がX軸と平行になっているような状態なのでしょうか?
Lhankor_Mhy

2018/11/28 02:29

そうですね、回転している場合は回転角を補正し、原点ではない場合は座標を補正する必要があります。数学苦手なのですぐに出てきませんが、両方とも補正するとそこそこ式が複雑になるはずです。
Ykkykk

2018/11/28 02:30

なるほど…。お教えいただきありがとうございました!
Lhankor_Mhy

2018/11/28 02:32

あ、Pythonタグだったんですね。サンプルがjavascriptだったので、そちらで回答してしまいました。すみません。
Ykkykk

2018/11/28 02:35

大丈夫です。コメントとご回答いただきありがとうございます!
guest

0

「交点を中心に長方形が回転する可能性を考えると、そもそも(長方形の四隅の)座標を一意に決めることができない」という質問者の意見が正解です。

参照しているサイトは、「ある一点の(原点からの)距離と(その点と原点を結ぶ直線の)角度から座標を求める方法」で、この質問で解決しようとする問題には適用できません。

投稿2018/11/28 02:05

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ykkykk

2018/11/28 02:08

ご回答いただきありがとうございます。 長方形の四隅の座標を求めようと思うと、他にも条件が必要になるということですね。
guest

0

確かに「一意に」決めることは出来ませんが、1つ求めるだけならその公式自体不要です。
対角線交点の座標を(a, b),長方形の横の長さ、縦の長さをそれぞれl,mとすると、
(a ± l/2, b ± m/2)(複合任意)
で4つの頂点の座標が出ます。

投稿2018/11/28 01:46

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ykkykk

2018/11/28 02:05

ご回答いただきありがとうございます。 そのような計算方法で求めることができるのですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問