成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

Hamal 指南

wuyumin / 2317人閱讀

摘要:點(diǎn)集是下文所述的無(wú)向圖矢量場(chǎng)以及網(wǎng)格的實(shí)體。將視為語(yǔ)言中的行列的二維數(shù)組可能會(huì)更好理解一些。打開(kāi),將修改為上述修改,意味著將相機(jī)沿軸正方向移動(dòng)了個(gè)單位,即讓相機(jī)重復(fù)靠近。矢量場(chǎng)文件的格式與點(diǎn)集文件相同。

簡(jiǎn)介

Hamal 是一份 Python 3 腳本,可將點(diǎn)集、無(wú)向圖、曲線、矢量場(chǎng)、網(wǎng)格曲面等三維幾何數(shù)據(jù)轉(zhuǎn)化為 POV-Ray 場(chǎng)景文件。也就是說(shuō),Hamal 不生產(chǎn)數(shù)據(jù),也不負(fù)責(zé)圖形渲染,它只能算是一個(gè)數(shù)據(jù)格式轉(zhuǎn)換器,面向?qū)?POV-Ray 有一些了解并且希望使用 POV-Ray 對(duì)上述三維幾何圖形進(jìn)行光線追蹤渲染的人。

安裝
$ git clone https://github.com/liyanrui/hamal.git
$ cd hamal
$ chmod +x hamal
$ sudo install hamal /usr/local/bin
點(diǎn)集

待渲染的三維點(diǎn)集數(shù)據(jù)應(yīng)當(dāng)存儲(chǔ)在 ASCII 編碼的文本文件中,并且文件的每一行文本都是三維點(diǎn)坐標(biāo)的字面值,例如:

1.2 3.3 5.4
0.1 2.2 8.5
... ... ...

現(xiàn)在假設(shè)三維點(diǎn)集數(shù)據(jù)文件為 foo.asc,通過(guò)以下命令可將其轉(zhuǎn)換為 POV-Ray 場(chǎng)景文件 foo.pov 與 foo.inc:

$ hamal foo.asc

這條命令會(huì)在當(dāng)前目錄生成 foo.pov 與 foo.inc,前者為視圖文件,后者為 POV-Ray 模型文件,使用 povray 命令可基于 foo.pov 與 foo.inc 對(duì)點(diǎn)集進(jìn)行渲染:

$ povray foo.pov

渲染結(jié)果為當(dāng)前目錄下的位圖文件 foo.png。例如:

Hamal 默認(rèn)的點(diǎn)的尺寸是 0.0025,下面這條命令可將其設(shè)置為 0.005:

$ hamal --point-size=0.005 foo.asc

再次使用 povray 處理新生成的 foo.png,結(jié)果可得:

注:事實(shí)上,當(dāng)點(diǎn)的尺寸設(shè)為 x 時(shí),點(diǎn)在 POV-Ray 中的實(shí)際尺寸是 x * r,r 為點(diǎn)集近似最小外接球的半徑。

點(diǎn)集是下文所述的無(wú)向圖、矢量場(chǎng)以及網(wǎng)格的「實(shí)體」。

無(wú)向圖

對(duì)于點(diǎn)集數(shù)據(jù)文件 foo.asc,假設(shè)我們算出了它對(duì)應(yīng)點(diǎn)集的歐幾里得最小支撐樹(shù)(EMST)——EMST 是樹(shù),也是無(wú)向圖。假設(shè) EMST 的數(shù)據(jù)被保存到 foo-graph.asc 文件,該文件的每一行都是 EMST 的一條邊的兩個(gè)端點(diǎn),只不過(guò)存儲(chǔ)的不是點(diǎn)坐標(biāo),而是 foo.asc 文件中對(duì)應(yīng)點(diǎn)坐標(biāo)的行號(hào),只不過(guò) foo.asc 第一行的行號(hào)從 0 開(kāi)始。將 foo.asc 視為 C 語(yǔ)言中的 n 行 3 列的二維數(shù)組可能會(huì)更好理解一些。例如:

0 1
1 15677
15677 12881
12881 12849
... ...

要繪制無(wú)向圖,在將無(wú)向圖數(shù)據(jù)轉(zhuǎn)換為 POV-Ray 的過(guò)程中,需要載入點(diǎn)集數(shù)據(jù)文件與無(wú)向圖數(shù)據(jù)文件:

$ hamal --graph=foo-graph.asc foo.asc

然后使用 povray 對(duì)新的 foo.pov 進(jìn)行處理,便可得到 EMST 的渲染結(jié)果:

結(jié)果似乎與上文所示的點(diǎn)集模型的渲染結(jié)果差不多,這實(shí)際上是因?yàn)辄c(diǎn)集非常密集所致。若修改 foo.pov,讓相機(jī)距離點(diǎn)集更近一些,便可以看清 EMST 的局部分支。

打開(kāi) foo.pov,將

camera {
  location <0, 0, -2 * model_radius> + model_center * z
  look_at <0, 0, 0>
  translate view_center
}

修改為:

camera {
  location model_center * z
  look_at <0, 0, 0>
  translate view_center
}

上述修改,意味著將相機(jī)沿 z 軸正方向移動(dòng)了 2 * model_radius 個(gè)單位,即讓相機(jī)重復(fù)靠近 EMST。重新用 povray 處理 foo.pov,可得:

點(diǎn)的尺寸與先的寬度似乎太大了一些,可以將它們?cè)O(shè)置的小一些,可以在使用 hamal 生成 POV-Ray 場(chǎng)景文件時(shí)將它們的尺寸設(shè)置的小一些,例如:

$ hamal --graph=foo-graph.asc --point-size=0.001 --line-width=0.0005 foo.asc

結(jié)果可得:

曲線

將一條曲線離散化處理,形成一組首尾相連的線段,這樣就可以構(gòu)成無(wú)向圖,然后利用上一節(jié)渲染無(wú)向圖的方法進(jìn)行曲線的渲染。

下圖是一條 3 次 Bezier 曲線的渲染結(jié)果:

矢量場(chǎng)

矢量場(chǎng),就是一組矢量,這組矢量的起點(diǎn)即上文所述的點(diǎn)集文件,例如 foo.asc,而它們的終點(diǎn)存儲(chǔ)在矢量場(chǎng)文件中,例如 foo-vector-field.asc。矢量場(chǎng)文件的格式與點(diǎn)集文件相同。

下面的命令可以將矢量場(chǎng)轉(zhuǎn)化為 POV-Ray 場(chǎng)景文件:

$ hamal --vector-field=foo-vector-field.asc --point-size=0.001 --line-width=0.0005 foo.asc

像上一節(jié)那樣修改 foo.pov 文件,拉近相機(jī)與模型之間的距離,結(jié)果可得:

網(wǎng)格

為了便于演示,下面的命令使用了 qhull 為一組隨機(jī)點(diǎn)集構(gòu)建了凸包,然后將凸包數(shù)據(jù)(三角網(wǎng)格文件)轉(zhuǎn)換為 POV-Ray 場(chǎng)景文件并交由 povray 進(jìn)行渲染:

$ rbox 100 W0 > points.asc
$ qhull QJ i < points.asc TO hull.asc
$ sed -i "1,2d" points.asc
$ sed -i "1d" hull.asc
$ hamal --object=hull --mesh=hull.asc --point-size=0.03 points.asc
$ povray +P hull.pov

hamal 的 --object 選項(xiàng)用于設(shè)定 POV-Ray 模型的文件名(不包含擴(kuò)展名)。

結(jié)果可得到如下圖所示的渲染結(jié)果:

內(nèi)幕

見(jiàn)「Python 邂逅 POV-Ray」與「趴邊去!」。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/41024.html

相關(guān)文章

  • 雷神 Thor —— TiDB 自動(dòng)化運(yùn)維平臺(tái)

    摘要:相當(dāng)于分布式數(shù)據(jù)庫(kù)的大腦,一方面負(fù)責(zé)收集和維護(hù)數(shù)據(jù)在各個(gè)節(jié)點(diǎn)的分布情況,另一方面承擔(dān)調(diào)度器的角色,根據(jù)數(shù)據(jù)分布狀況以及各個(gè)存儲(chǔ)節(jié)點(diǎn)的負(fù)載來(lái)采取合適的調(diào)度策略,維持整個(gè)系統(tǒng)的平衡與穩(wěn)定。原文鏈接雷神自動(dòng)化運(yùn)維平臺(tái) 作者:瞿鍇,同程藝龍資深 DBA 背景介紹 隨著互聯(lián)網(wǎng)的飛速發(fā)展,業(yè)務(wù)量可能在短短的時(shí)間內(nèi)爆發(fā)式地增長(zhǎng),對(duì)應(yīng)的數(shù)據(jù)量可能快速地從幾百 GB 漲到幾百個(gè) TB,傳統(tǒng)的單機(jī)數(shù)據(jù)庫(kù)提...

    RayKr 評(píng)論0 收藏0
  • 使用STS構(gòu)建/導(dǎo)入入門(mén)指南

    摘要:本指南將引導(dǎo)您使用構(gòu)建其中一個(gè)入門(mén)指南。導(dǎo)入入門(mén)指南啟動(dòng)并運(yùn)行后,從菜單中打開(kāi)向?qū)А棾鱿驅(qū)槟峁木W(wǎng)站搜索和選擇任何已發(fā)布的指南。概要恭喜您已經(jīng)設(shè)置了,導(dǎo)入了入門(mén)指南,并打開(kāi)了一個(gè)瀏覽器選項(xiàng)卡來(lái)瀏覽它。 本指南將引導(dǎo)您使用Spring Tool Suite(STS)構(gòu)建其中一個(gè)入門(mén)指南。 你要構(gòu)建什么 您將選擇一個(gè)Spring指南并將其導(dǎo)入Spring Tool Suite。然后...

    tanglijun 評(píng)論0 收藏0
  • 產(chǎn)品概述 智能大數(shù)據(jù)平臺(tái) USDP

    摘要:產(chǎn)品概述產(chǎn)品概述產(chǎn)品概述本篇目錄產(chǎn)品特點(diǎn)產(chǎn)品特點(diǎn)功能簡(jiǎn)介功能簡(jiǎn)介操作指南操作指南開(kāi)發(fā)指南開(kāi)發(fā)指南任務(wù)調(diào)度任務(wù)調(diào)度產(chǎn)品價(jià)格產(chǎn)品價(jià)格簡(jiǎn)稱,是推出的云上智能化輕量級(jí)的大數(shù)據(jù)基礎(chǔ)服務(wù)平臺(tái),能夠幫您快速構(gòu)建起大數(shù)據(jù)的分析處理能力。 產(chǎn)品概述本篇目錄產(chǎn)品特點(diǎn)功能簡(jiǎn)介操作指南開(kāi)發(fā)指南任務(wù)調(diào)度產(chǎn)品價(jià)格UCloud Smart Data Platform(簡(jiǎn)稱 USDP),是 UCloud 推出的云上智能化、...

    ernest.wang 評(píng)論0 收藏441

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<