最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

簡介戰(zhàn)艦?zāi)P蚭xcel的編寫

2021-11-16 23:04 作者:秋羽美奈子Official  | 我要投稿

2020年10月整了個活,拿excel試著搞了一下船體型線的“建?!薄_@個坑后來基本沒動過叻,現(xiàn)在有點(diǎn)擺爛叻,不過覺得說一下怎么搞這玩意兒還是比較好玩的。

聲明:純屬數(shù)學(xué)系學(xué)生自娛自樂整活,不涉及有關(guān)戰(zhàn)艦的專業(yè)內(nèi)容。

先上圖。

還是做出來了效果的。圖3是模型的參數(shù)調(diào)整。因?yàn)闀r間有點(diǎn)倉促,這些數(shù)據(jù)點(diǎn)的對應(yīng)關(guān)系懶得詳解了。

那么,這個excel的編寫,從計(jì)算上,主要是兩方面:模型的構(gòu)建,視覺展示效果。

構(gòu)建模型,當(dāng)然是先設(shè)定好代表的樣點(diǎn),然后處理過渡線條這些對應(yīng)關(guān)系。對線條,我是簡單地用二階貝塞爾曲線處理的。嚴(yán)格一點(diǎn)應(yīng)拿三階精度的樣條曲線(確保曲率平滑?),不過我制作力不足,先拿自己會搞的湊合湊合。

那么,比如說給定了同一平面兩個點(diǎn)的坐標(biāo),和連線在這兩點(diǎn)的走向,接下來我要構(gòu)建連線。很簡單,只需要把走向延長相交,就得到了二階貝塞爾曲線的兩個“基向量”(我自己這么稱的)。然后就是一個數(shù)學(xué)上的處理,沒空細(xì)講。就截個以前自己整理數(shù)學(xué)筆記的圖吧。

然后就是在excel里處理選取分段啊剩下的一些連續(xù)過渡的細(xì)節(jié)問題了。

視覺展示的效果,分為兩個計(jì)算實(shí)現(xiàn):旋轉(zhuǎn)變換,可視縱深。

旋轉(zhuǎn)變換非常好理解,就是直角坐標(biāo)系變成球坐標(biāo)系,統(tǒng)一調(diào)整角度,再變回來。

可視縱深簡單來說,就是視覺投影長度跟視覺平面所垂直的縱深是成反比的。比如吧,取xy是視覺平面,然后拿一只筆平行于xy面,那么變更z值(到人眼的距離),可以簡單做個小實(shí)驗(yàn)來驗(yàn)證一下筆的可視長度跟縱深的關(guān)系。就是線性負(fù)相關(guān)的。

這里還有一個小點(diǎn)思考:為什么不是用極坐標(biāo)去負(fù)相關(guān)(弧面成像)?可以用一個規(guī)律反證:空間中,對直線做旋轉(zhuǎn)變換,不改變其(可視的)線性。從而證明,可視縱深的效果計(jì)算,是直接用垂直xy可視面的z深度,而不是極坐標(biāo)的極半徑。

在了解了原理之后,再來簡單說一下實(shí)際操作的優(yōu)化問題。先放我在20年國慶假期左右做了差不多一周的初版。

就不全部截圖了。初版說實(shí)話運(yùn)行起來非??ǎ_(dá)到11MB大小。我后來進(jìn)行了計(jì)算上的優(yōu)化,二版(也就是開頭所示)大小為6MB,可以說優(yōu)化很成功。

當(dāng)然在輸入界面這些也有所整理優(yōu)化。那么到二版的核心優(yōu)化是什么呢?就是對三維數(shù)據(jù)的構(gòu)建計(jì)算做了一個簡化。三維效果圖,包括平面各視圖,都是散點(diǎn)圖,只不過用了兩萬多個散點(diǎn)。那么,初版對三維的點(diǎn)集,是先算出來對應(yīng)坐標(biāo),再做旋轉(zhuǎn)、縱深處理。但是我對過渡曲線的構(gòu)建基礎(chǔ)模型是向量,那么我只需要對向量做相應(yīng)的旋轉(zhuǎn)、縱深投影處理,再直接構(gòu)建過渡段的數(shù)據(jù)點(diǎn),就能節(jié)省大量的視覺效果的處理計(jì)算。

放些數(shù)據(jù)計(jì)算的截圖吧。

彩 蛋(?)

本來,我是想一口氣把炮塔啊動力艙啊裝甲模型啊這些的可視化也搞出來,從而實(shí)現(xiàn)excel版的SpringSharp(計(jì)算戰(zhàn)艦的一些設(shè)計(jì)參數(shù))還帶三維模型(想法挺好),但是....excel65535行上限不夠我用了(*v*)也是玩到一絕,想起來以前中學(xué)時搞過一些差點(diǎn)計(jì)算器寫不下的復(fù)雜迭代算法還把計(jì)算機(jī)算了幾分鐘算到?jīng)]電關(guān)機(jī)了....

另一方面,即使簡化壓縮到了6MB大小,在手機(jī)WPS上運(yùn)行還是完全不行,但這就不是我的鍋了。是WPS它自己受不住動不動崩潰的。而且以前一些沒這么大的算法也有WPS顯示錯誤或者算錯數(shù)的問題......不過在電腦上這玩意要加載也要點(diǎn)時間??偙饶秤文蟠虞d快而且不至于閃退崩潰(確信)

不過,后來所積累的間斷的思考,已經(jīng)解決了一部分問題。對于塞不下數(shù)據(jù)點(diǎn)的問題,我后面構(gòu)想可以通過用折線圖替代散點(diǎn)圖來解決。用折線圖就可以大幅減少需要的樣點(diǎn),并且很好地壓縮文件大小。但是實(shí)際處理上比較麻煩,是需要對樣點(diǎn)正確排序并疊圖的,而且我沒想到,單元格的長寬也會拉扯圖像......加上后面忙了很多,現(xiàn)在基本上就爛尾這樣了。

雖然改進(jìn)還沒有完全實(shí)現(xiàn),但是前景很好。甚至有望把文件大小從6MB壓縮到1M以內(nèi),并且很好地因?yàn)槭钳B圖從而不存在數(shù)據(jù)上限的問題。理論上已經(jīng)可以繼續(xù)把炮塔啊動力啊裝甲啊還有魚雷啊艦橋啊這些模塊全做出來然后快樂疊疊圖,甚至還初步嘗試了填色....要是后面支持對顏色的計(jì)算那沒準(zhǔn)真就來點(diǎn)光影效果處理迫真建模了(大霧)然而這玩意做起來太累了......

注意這個填色只是簡單取倆線段交錯取點(diǎn)然后連線。只要把邊界函數(shù)換一些曲線解析式,做出邊緣為曲線的模塊填色效果是沒有問題的。

大概就說這么多吧......(*v*)有時候已經(jīng)不知道做它的興趣到底是戰(zhàn)艦,還是數(shù)學(xué),還是編程......大概三者都是吧。不過還是很有趣味、意義的。

附另一個模型的數(shù)據(jù)和圖像。

有想法或興趣歡迎在評論區(qū)留言。

簡介戰(zhàn)艦?zāi)P蚭xcel的編寫的評論 (共 條)

分享到微博請遵守國家法律
确山县| 临沧市| 花莲市| 全椒县| 石城县| 北票市| 景宁| 若尔盖县| 盐山县| 西畴县| 天水市| 嘉定区| 洪江市| 开化县| 高清| 高密市| 松桃| 武鸣县| 长治县| 忻城县| 门头沟区| 曲靖市| 天门市| 英吉沙县| 南靖县| 佛山市| 静海县| 浦东新区| 张家界市| 山阳县| 平邑县| 巫溪县| 崇文区| 庆安县| 常山县| 司法| 巴东县| 兴业县| 沙河市| 皮山县| 洱源县|