OSG VS 第十三周

2021-08-01 04:39:47 字數 2450 閱讀 4212

成果總結:

1.解決了shp檔案的讀取。

原因在於二進位制檔案不能用'r',必須用'rb',不然就會出錯。修改之後就沒問題了~

參考:讀取二進位制檔案:

shapefile格式說明及讀寫**示例:

2.陰影的又又又一問題。

週三上傳提交了陰影的修改**,下午他們開了迭代會,估計是看了效果。聽他們回來討論說還存在問題,隔壁經理…跑過來看了,然後又問我這是什麼情況,我也解釋不了,周四的時候,上午先自己看了一會,想著如果我們經理不找我,我就先不管這個,還要寫日照時間計算呢。然後經理真的沒找我說這個,只是問了我日照時間寫的怎麼樣了(具體下下一條)。。所以我就先不管了吧》.<

情況是這樣:當相機視點距離物體特別近時,會出現陰影消失的情況。我第二天仔細觀察了一下,是在特定時間,特定角度的房屋上才會發生。這個我真的解釋不了。剛來開始接觸陰影的時候,我問師姐,她說有時候沒有跟lod有關,某一層lod沒設定,但那種情況下繼續拉近視點,陰影還會出現。我現在的是,特別近時就沒有影子了,再拉近也沒用,再拉近就進物體裡面了。

不過說實話,這種情況一直存在,我只把它當做一種「情況」,而不是存在的「問題」。後來也查了相關資料,講這個的很少,有乙個提到跟光空間的投影矩陣設定有關,見參考**(檢查了一下,感覺**裡面也沒寫錯啊,人家osg出的官方**,怎麼會錯呢)。我猜測要麼就還是精度問題,拉太近了,螢幕座標轉世界座標再到光空間紋理座標的過程中,就會有資料損失。但也只是猜測,哎~~這個我真的解決不了==你不拉那麼近看不就好了,或者換個觀察時間嘛》.<

參考:3.計算日照時間。能夠獲取各個面的座標之後,有以下幾個關鍵點需要解決:

①滑鼠選擇的模型與shp中的面一一對應。

用模型的中心點座標與各面座標比較,判斷點是否在多邊形內。(只向右引射線)

參考:1.

2.開始想通過最大最小座標範圍直接判斷,發現並不準確,還是只能用於初步剔除,必須用準確的座標來判斷點在哪個麵中。

②讀shp.cpp中的座標序列要將值傳到選模型.cpp中,也就是不同檔案間變數中的傳遞

這個比較好解決。shp.cpp中定義的是類a,在另乙個cpp中:

a a;

***=a.point;

就好了。 ③

osgearth中經緯度高程與世界座標的相互轉換。

//當已知3d座標點(世界座標)時,求在earth上的經緯度。

osgearth::spatialreference *mapwgs84srs = osgearth::spatialreference::create("epsg:4326");

osgearth::geopoint convertpoint;

convertpoint.fromworld(mapwgs84srs,3d座標點);

//convertpoint 就是求得的經緯度座標

//經緯度->世界座標(pp為已知經緯度高程)

geopoint latlon(mapwgs84srs, pp, altmode_absolute);

osg::vec3d worldxyz;

latlon.toworld( worldxyz );

//worldxyz就是求得的世界座標

參考: ④

開始計算,如何將實時的日期傳來以求解太陽實時位置(還是不同檔案間變數中的傳遞)

這個還沒解決。下週考慮。

開始用的是qdate currentdate=qdate::currentdate();,但發現其實這樣只能計算今天的,不隨日期框的變化而變化。

⑤計算結束後,如何剔除背光面和拐角無光照點。

這是經理幫忙想出的方法。只計算朝南的面,還要把其中拐角裡的線段剔除。其中涉及向量求交,據此判斷。有思路了,下週實現。

問題集錦:

1.「異常: 0xc0000005: 讀取位置 0x0000000000000000 時發生訪問衝突。」:

一般是指標指向不對。(我的問題是指向了空的位置)

參考:2.開啟別人的專案,

①無法找到「ui_***.h」:在***.ui屬性的四行配好

②無法找到「moc_***.cpp」:把對應.h屬性中的兩行配好並編譯

3.關於透視投影、正交投影

void gluperspective(gldouble fovy,gldouble aspect,gldouble znear, gldouble zfar);

其操作是建立乙個對稱的透視投影矩陣,並且用這個矩陣乘以當前矩陣。

引數fovy定義視野在x-z平面的角度,範圍是[0.0, 180.0];

引數aspect是投影平面寬度與高度的比率;

引數znear和far分別是遠近裁剪面沿z負軸到視點的距離,它們總為正值。

下週目標:

1.繼續完善日照計算部分,修改幾個地方,並把整個功能做精細。

2.困,鼻炎。其實不難寫,就是懶,週末休息好,下週打起精神。目標六月底!

第十三周周小結

2.本週工作任務 幫助各個團隊明確第二次衝刺的目標,制定明天團隊的任務和分工,點評團隊倉庫。我負責的團隊安卓五組,web五組,web八組,web九組 3.作業情況 無 4.本週發現的問題 1 大部分團隊的任務制定的不夠具體,而且有些任務有點偏離了他們在第二次衝刺所指定的目標。2 在第一次團隊衝刺結束...

第十三周總結

呵呵,星期五了,十三周快要結束了,心情真的是不同 因為,從下週開始有幾節課不用上了,而這幾節課都是在4點半到6點半上的,這樣我們就不用為了吃飯而煩惱了 高興還高興,還是要總結這一周的情況 有了乙份新的家教,星期六星期天中午去,中午不睡覺感覺真的不是很好,但無所謂了,為了暑假的生活費,努力一點啦,只是...

第十三周2

檔名稱 完成日期 2014 年 5 月 25 日 版本號 v1.0 對任務及求解方法的描述部分 輸入描述 問題描述 1 先建立乙個point 點 類,包含資料成員x,y 座標點 2 以point為基類,派生出乙個circle 圓 類,增加資料成員 半徑 基類的成員表示圓心 3 編寫上述兩類中的構造 ...