teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/06/22 03:32

投稿

fana
fana

スコア12227

answer CHANGED
@@ -1,3 +1,21 @@
1
1
  「円」を描画する手段を用意し,
2
2
  「楕円」は,それを適当に変換すれば良いのではないでしょうか.
3
- `glRotated` とか `glScaled` とかそういうので.
3
+ `glRotated` とか `glScaled` とかそういうので.
4
+
5
+ ---
6
+
7
+ > どういった数式
8
+
9
+ と問われたならば,結局は「上記のことで行われる演算」ということになります.
10
+ 「円を引き延ばし(あるいは縮め),回転し,所望の位置に平行する」という.
11
+
12
+ * スケーリング変換の行列を **S**
13
+ * 回転変換の行列を **R**
14
+ * 平行移動のための行列を **T**
15
+
16
+ とすれば,「円」の周上の座標 **p** から,
17
+
18
+ 結果座標(所望の楕円の周上の座標) = **T** * **R** * **S** * **p**
19
+
20
+ とかして計算してやればいい.
21
+ (あなたがいつもやっていることですよね)