簡體   English   中英

坐標中的C ++旋轉立方體(非繪制)

[英]C++ Rotating Cube in Coordinates (non-draw)

我一直在尋找很長一段時間而沒有任何結果,一直在為自己計算數學約一個星期以上。

我的目標是設置光標位置,以使其形成旋轉立方體的方式與OpenGL旋轉立方體邊框類似。

由於OpenGL內置了旋轉功能,因此我無法適應。 我只是想知道是否有人對我將如何處理有任何想法。 如果您想知道此點是什么,則在每個創建的幀(多維數據集旋轉點)上,它都具有擦除在MsPaint中繪制的所有內容的功能,然后開始繪制下一個位置,基本上是創建一個正在繪制的旋轉多維數據集。

如果您嘗試在C語言中旋轉多維數據集而沒有任何專用庫的幫助,則應使用Matrix操作轉換坐標。

  1. 您將獲得旋轉矩陣(我們稱其為M
  2. 您應該將M乘以座標向量-結果是新座標。

對於2D旋轉,例如(f-旋轉角度,+-是旋轉方向):

|cos f +-sin f| |x|   |x'|
|             | | | = |  |
|+-sin f cos f| |y|   |y'|

對於3D旋轉,應使用3x3像素。 另外,您還應該旋轉軸,並根據它選擇矩陣M

Mx (繞x軸旋轉):

|1      0       0 ||x|   |x'|
|0   cos f  -sin f||y| = |y'|                       
|0   sin f   cos f||z|   |z'|

我的 (繞y軸旋轉):

|cos f      0      sin f ||x|   |x'|
| 0         1      0     ||y| = |y'|                       
|-sin f     0      cos f ||z|   |z'|

Mz (繞z軸旋轉):

| cos f   -sin f    0    ||x|   |x'|
| sin f   cos f     0    ||y| = |y'|                       
| 0        0        1    ||z|   |z'|

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM