《實時控制軟體設計》作業一 Eigen庫的使用

2021-09-17 06:09:08 字數 1070 閱讀 8606

作業內容及要求這裡

**repo

題目要求實現對平面圖形的一系列圖形學操作。平面圖形可以表示為其所有頂點的有序連線,對圖形的操作可以分解為對其所有頂點依次應用同一操作。

以「頂點序列表示圖形」的思路,定義geoelement型別,用於表示包括點、線、多邊形的平面圖形元素,使用stl中的動態陣列vector類實現。其定義如下:

typedef std::vectorgeoelement;
測試使用geoelement建立一條直線並輸出:

//commit 6372dba /main.cpp

#include #include #include using namespace eigen;

int main()

return res;

}

實現的方式就是將elmt中的每個點依次與移動向量做加法,得到的即是移動後的圖形中對應點的座標。

測試**如下:

//commit 9d4515e /main.cpp

#include #include #include #include "geoutils.h"

using namespace eigen;

int main() x' \\ y' \end = \begin cos\theta & -sin\theta \\ sin\theta & cos\theta \end \begin x \\ y \end $$

其中(x,y)為變換前的座標,(x',y')為變換後的座標,θ為旋轉的角度。

只需將圖形逐點按此式變換即可:

//commit 7c2c3f8 /geoutils.cpp

geoutils::geoelement geoutils::rotate(double theta, geoelement elmt)

測試**及結果不再贅述。

讀取和解析使用者指令

設計檔案格式並實現解析器

gui的開發

《實時控制軟體設計》期末作業

1 每個團隊的pm在github.com rtcsd2016下建立本團隊的專案repository,把團隊成員新增進去。2 在repository的根目錄下建立readme.md文件用於簡述團隊組成和團隊開發目標,在專案完成後新增關於軟體編譯和執行的簡要說明。也可新增todo.md用於介紹團隊近期的...

《實時控制軟體設計》第三週作業

閱讀作業 快速通讀 構建之法 現代軟體工程 全書,列出幾條問題項,發表在個人部落格上,如 git github實踐作業 把上述操作過程記錄在個人部落格上,至少截一張最後的log顯示的圖。在個人的github上進行一次fork操作,把感興趣的 庫fork到個人賬號,預設可選擇 在個人github帳號下...

《實時控制軟體設計》第乙個程式設計作業

c 程式設計是基本功訓練,鄒欣老師在教學中,第乙個作業是 花二十分鐘寫乙個能自動生成小學四則運算題目的命令列 軟體 要求 a 除了整數以外,還要支援真分數的四則運算。例如 1 6 1 8 7 24 b 讓程式能接受使用者輸入答案,並判定對錯。最後給出總共 對 錯 的數量。詳見 在此基礎上,進一步可以...