97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

北京建設(shè)監(jiān)理協(xié)會(huì)網(wǎng)站怎樣建立平臺(tái)

鶴壁市浩天電氣有限公司 2026/01/24 17:34:14
北京建設(shè)監(jiān)理協(xié)會(huì)網(wǎng)站,怎樣建立平臺(tái),深圳網(wǎng)站建設(shè)定制開發(fā)服務(wù),深圳廣告公司聯(lián)系方式電話規(guī)則文件編寫 在CityEngine中#xff0c;規(guī)則文件是定義城市模型生成邏輯的核心文件。規(guī)則文件使用CityEngine的規(guī)則語(yǔ)言#xff08;CGA#xff09;#xff0c;這是一種基于形狀的操作語(yǔ)言#xff0c;用于描述如何從簡(jiǎn)單的幾何形狀生成復(fù)雜的三維模型。通過(guò)編寫規(guī)則文件規(guī)則文件是定義城市模型生成邏輯的核心文件。規(guī)則文件使用CityEngine的規(guī)則語(yǔ)言CGA這是一種基于形狀的操作語(yǔ)言用于描述如何從簡(jiǎn)單的幾何形狀生成復(fù)雜的三維模型。通過(guò)編寫規(guī)則文件用戶可以控制建筑物、道路、植被等城市元素的生成過(guò)程從而實(shí)現(xiàn)高度自定義的城市仿真。CGA語(yǔ)言基礎(chǔ)語(yǔ)法結(jié)構(gòu)CGA語(yǔ)言的基本語(yǔ)法結(jié)構(gòu)非常直觀。每個(gè)規(guī)則文件由一個(gè)或多個(gè)規(guī)則rule組成每個(gè)規(guī)則定義了一組操作這些操作將應(yīng)用于特定的形狀shape。規(guī)則文件的擴(kuò)展名為.cga。以下是一個(gè)簡(jiǎn)單的CGA規(guī)則文件示例// 定義一個(gè)規(guī)則文件 StartRule createBuilding() { // 操作 extrude(10) // 拉伸形狀 color(#FF0000) // 設(shè)置顏色 split(y) { 0.5 : roof() // 分割形狀并應(yīng)用規(guī)則 0.5 : wall() // 分割形狀并應(yīng)用規(guī)則 } } roof() { extrude(2) color(#00FF00) } wall() { extrude(8) color(#0000FF) }基本操作CGA語(yǔ)言提供了多種基本操作用于形狀的變換和生成。以下是一些常用的操作extrude(height)將形狀沿垂直方向拉伸指定的高度。color(colorCode)設(shè)置形狀的顏色。split(axis)將形狀沿指定軸分割成多個(gè)部分。translate(axis, distance)將形狀沿指定軸移動(dòng)指定的距離。scale(axis, factor)將形狀沿指定軸縮放指定的比例。規(guī)則應(yīng)用規(guī)則文件中的規(guī)則可以通過(guò)以下幾種方式應(yīng)用StartRule指定規(guī)則文件的入口規(guī)則當(dāng)模型生成開始時(shí)這個(gè)規(guī)則會(huì)被首先調(diào)用。apply ruleName在形狀上應(yīng)用指定的規(guī)則。call ruleName調(diào)用另一個(gè)規(guī)則但不會(huì)改變當(dāng)前形狀。形狀屬性形狀在CGA語(yǔ)言中可以具有多種屬性這些屬性可以在規(guī)則中訪問(wèn)和修改。常見的屬性包括attr自定義屬性用于存儲(chǔ)和傳遞數(shù)據(jù)。height形狀的高度。width形狀的寬度。depth形狀的深度。center形狀的中心點(diǎn)。變量和參數(shù)CGA語(yǔ)言支持變量和參數(shù)的使用這使得規(guī)則更加靈活和可復(fù)用。變量可以在規(guī)則中定義和使用參數(shù)可以在規(guī)則調(diào)用時(shí)傳遞。變量// 定義變量 height 10 createBuilding() { extrude(height) // 使用變量 color(#FF0000) }參數(shù)createBuilding(height, color) { extrude(height) // 使用參數(shù) color(color) // 使用參數(shù) }條件判斷CGA語(yǔ)言支持條件判斷可以用于根據(jù)特定條件選擇不同的操作。createBuilding(height) { extrude(height) if (height 10) { color(#FF0000) } else { color(#0000FF) } }循環(huán)CGA語(yǔ)言支持循環(huán)操作可以用于重復(fù)執(zhí)行一系列操作。createBuilding(height) { extrude(height) for (i; 0; 5) { translate(y, i * 2) extrude(2) color(#FF0000) } }高級(jí)規(guī)則編寫嵌套規(guī)則嵌套規(guī)則是指在一個(gè)規(guī)則中調(diào)用另一個(gè)規(guī)則從而實(shí)現(xiàn)更復(fù)雜的模型生成邏輯。StartRule createBuilding() { extrude(10) color(#FF0000) split(y) { 0.5 : roof() 0.5 : createWalls() } } createWalls() { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } } roof() { extrude(2) color(#00FF00) } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) }形狀分割形狀分割是CGA語(yǔ)言中非常強(qiáng)大的功能可以將一個(gè)形狀沿特定軸分割成多個(gè)部分并對(duì)每個(gè)部分應(yīng)用不同的規(guī)則。StartRule createBuilding() { extrude(10) split(y) { 0.5 : createRoof() 0.5 : createWalls() } } createRoof() { split(x) { 0.5 : roofLeft() 0.5 : roofRight() } } createWalls() { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } } roofLeft() { extrude(2) color(#00FF00) } roofRight() { extrude(2) color(#00FF00) } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) }形狀操作CGA語(yǔ)言提供了多種形狀操作用于形狀的變換和生成。以下是一些高級(jí)操作示例旋轉(zhuǎn)rotate(axis, angle) { rotateX(angle) // 沿X軸旋轉(zhuǎn) rotateY(angle) // 沿Y軸旋轉(zhuǎn) rotateZ(angle) // 沿Z軸旋轉(zhuǎn) }布爾操作CGA語(yǔ)言支持布爾操作如并集、差集和交集用于形狀的組合和裁剪。StartRule createBuilding() { extrude(10) color(#FF0000) split(y) { 0.5 : createRoof() 0.5 : createWalls() } } createRoof() { extrude(2) color(#00FF00) difference() { extrude(2) // 基礎(chǔ)形狀 translate(y, -1) extrude(1) // 裁剪形狀 } } createWalls() { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) }形狀腳本形狀腳本是CGA語(yǔ)言中的一種高級(jí)功能允許用戶編寫更復(fù)雜的邏輯。形狀腳本使用Python語(yǔ)言編寫可以在規(guī)則中調(diào)用。定義形狀腳本創(chuàng)建一個(gè)Python腳本文件例如building_script.py定義一些輔助函數(shù)# building_script.pydefget_building_height(building_type):ifbuilding_typeresidential:return10elifbuilding_typecommercial:return20else:return30defget_building_color(building_type):ifbuilding_typeresidential:return#FF0000elifbuilding_typecommercial:return#00FF00else:return#0000FF在CGA規(guī)則中調(diào)用形狀腳本StartRule createBuilding(building_type) { // 調(diào)用Python腳本中的函數(shù) call building_script.get_building_height(building_type) - height call building_script.get_building_color(building_type) - color extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls() } } createRoof() { extrude(2) color(#00FF00) } createWalls() { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) }形狀屬性的高級(jí)用法形狀屬性可以用于存儲(chǔ)和傳遞更復(fù)雜的數(shù)據(jù)例如建筑物的層數(shù)、窗戶的數(shù)量等。StartRule createBuilding(building_type, num_floors) { attr height num_floors * 3 attr color get_building_color(building_type) extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls(num_floors) } } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } for (i; 0; num_floors) { translate(y, i * 3) split(x) { 0.25 : createWindow() 0.5 : createWindow() 0.25 : createWindow() } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow() { extrude(1) color(#FFFFFF) } // 定義一個(gè)Python函數(shù) def get_building_color(building_type): if building_type residential: return #FF0000 elif building_type commercial: return #00FF00 else: return #0000FF形狀繼承形狀繼承允許一個(gè)規(guī)則繼承另一個(gè)規(guī)則的屬性和操作從而減少重復(fù)代碼。baseBuilding(height, color) { extrude(height) color(color) } StartRule createResidentialBuilding() { // 繼承baseBuilding規(guī)則 call baseBuilding(10, #FF0000) split(y) { 0.5 : createRoof() 0.5 : createWalls(3) } } createCommercialBuilding() { // 繼承baseBuilding規(guī)則 call baseBuilding(20, #00FF00) split(y) { 0.5 : createRoof() 0.5 : createWalls(5) } } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } for (i; 0; num_floors) { translate(y, i * 3) split(x) { 0.25 : createWindow() 0.5 : createWindow() 0.25 : createWindow() } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow() { extrude(1) color(#FFFFFF) }形狀引用形狀引用允許在規(guī)則中引用其他形狀從而實(shí)現(xiàn)更復(fù)雜的模型組合和復(fù)用。StartRule createBuilding(building_type, num_floors) { attr height num_floors * 3 attr color get_building_color(building_type) extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls(num_floors) } // 引用其他形狀 ref building2 createBuilding(commercial, 4) translate(x, 10) ref building2 } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } for (i; 0; num_floors) { translate(y, i * 3) split(x) { 0.25 : createWindow() 0.5 : createWindow() 0.25 : createWindow() } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow() { extrude(1) color(#FFFFFF) } // 定義一個(gè)Python函數(shù) def get_building_color(building_type): if building_type residential: return #FF0000 elif building_type commercial: return #00FF00 else: return #0000FF形狀層次結(jié)構(gòu)在復(fù)雜的城市模型生成過(guò)程中形狀層次結(jié)構(gòu)可以幫助組織和管理模型的生成邏輯。通過(guò)使用嵌套規(guī)則和形狀引用可以創(chuàng)建多層級(jí)的形狀結(jié)構(gòu)。StartRule createCity() { // 創(chuàng)建多個(gè)建筑物 ref building1 createBuilding(residential, 3) translate(x, 10) ref building2 createBuilding(commercial, 4) translate(x, 10) ref building3 createBuilding(industrial, 5) } createBuilding(building_type, num_floors) { attr height num_floors * 3 attr color get_building_color(building_type) extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls(num_floors) } // 創(chuàng)建周圍環(huán)境 split(x) { 0.5 : createPark() 0.5 : createRoad() } } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } for (i; 0; num_floors) { translate(y, i * 3) split(x) { 0.25 : createWindow() 0.5 : createWindow() 0.25 : createWindow() } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow() { extrude(1) color(#FFFFFF) } // 創(chuàng)建公園 createPark() { extrude(1) color(#008000) } // 創(chuàng)建道路 createRoad() { extrude(1) color(#808080) } // 定義一個(gè)Python函數(shù) def get_building_color(building_type): if building_type residential: return #FF0000 elif building_type commercial: return #00FF00 else: return #0000FF形狀參數(shù)化參數(shù)化是CGA語(yǔ)言的一個(gè)重要特性通過(guò)參數(shù)化可以創(chuàng)建高度靈活的模型生成規(guī)則。以下是一個(gè)參數(shù)化建筑物生成的示例StartRule createBuilding(building_type, num_floors, window_spacing) { attr height num_floors * 3 attr color get_building_color(building_type) extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls(num_floors, window_spacing) } } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors, window_spacing) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } for (i; 0; num_floors) { translate(y, i * 3) split(x) { 0.25 : createWindow(window_spacing) 0.5 : createWindow(window_spacing) 0.25 : createWindow(window_spacing) } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow(window_spacing) { for (j; 0; 4) { translate(x, j * window_spacing) extrude(1) color(#FFFFFF) } } // 定義一個(gè)Python函數(shù) def get_building_color(building_type): if building_type residential: return #FF0000 elif building_type commercial: return #00FF00 else: return #0000FF形狀生成的優(yōu)化在生成大量形狀時(shí)優(yōu)化規(guī)則文件的性能是非常重要的。以下是一些優(yōu)化技巧減少不必要的形狀分割避免在每個(gè)形狀上進(jìn)行不必要的分割操作可以通過(guò)參數(shù)化和條件判斷減少分割次數(shù)。使用緩存對(duì)于重復(fù)生成的形狀可以使用緩存來(lái)提高生成效率。優(yōu)化循環(huán)合理使用循環(huán)和條件判斷避免不必要的重復(fù)操作。簡(jiǎn)化操作盡量使用簡(jiǎn)單的操作來(lái)實(shí)現(xiàn)復(fù)雜的效果減少計(jì)算量。減少不必要的形狀分割在生成復(fù)雜模型時(shí)形狀分割是常用的手段。然而過(guò)多的分割操作會(huì)顯著增加計(jì)算時(shí)間和內(nèi)存消耗??梢酝ㄟ^(guò)參數(shù)化和條件判斷來(lái)減少不必要的分割。StartRule createBuilding(building_type, num_floors) { attr height num_floors * 3 attr color get_building_color(building_type) extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls(num_floors) } } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } if (num_floors 1) { for (i; 0; num_floors - 1) { translate(y, i * 3) split(x) { 0.25 : createWindow() 0.5 : createWindow() 0.25 : createWindow() } } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow() { extrude(1) color(#FFFFFF) } // 定義一個(gè)Python函數(shù) def get_building_color(building_type): if building_type residential: return #FF0000 elif building_type commercial: return #00FF00 else: return #0000FF使用緩存緩存可以用于存儲(chǔ)已經(jīng)生成的形狀避免在后續(xù)生成過(guò)程中重復(fù)計(jì)算。CityEngine提供了內(nèi)置的緩存機(jī)制可以通過(guò)cache關(guān)鍵字來(lái)使用。StartRule createBuilding(building_type, num_floors) { attr height num_floors * 3 attr color get_building_color(building_type) extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls(num_floors) } // 引用緩存的其他形狀 ref building2 cache createBuilding(commercial, 4) translate(x, 10) ref building2 } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } if (num_floors 1) { for (i; 0; num_floors - 1) { translate(y, i * 3) split(x) { 0.25 : createWindow() 0.5 : createWindow() 0.25 : createWindow() } } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow() { extrude(1) color(#FFFFFF) } // 定義一個(gè)Python函數(shù) def get_building_color(building_type): if building_type residential: return #FF0000 elif building_type commercial: return #00FF00 else: return #0000FF優(yōu)化循環(huán)合理使用循環(huán)和條件判斷可以顯著提高生成效率。避免在循環(huán)中進(jìn)行不必要的操作可以通過(guò)條件判斷減少循環(huán)次數(shù)。StartRule createBuilding(building_type, num_floors) { attr height num_floors * 3 attr color get_building_color(building_type) extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls(num_floors) } } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } if (num_floors 1) { for (i; 0; num_floors - 1) { translate(y, i * 3) split(x) { 0.25 : createWindow() 0.5 : createWindow() 0.25 : createWindow() } } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow() { extrude(1) color(#FFFFFF) } // 定義一個(gè)Python函數(shù) def get_building_color(building_type): if building_type residential: return #FF0000 elif building_type commercial: return #00FF00 else: return #0000FF簡(jiǎn)化操作盡量使用簡(jiǎn)單的操作來(lái)實(shí)現(xiàn)復(fù)雜的效果減少計(jì)算量。例如可以通過(guò)組合基本形狀來(lái)生成復(fù)雜的模型而不是使用大量的布爾操作。StartRule createBuilding(building_type, num_floors) { attr height num_floors * 3 attr color get_building_color(building_type) extrude(height) color(color) split(y) { 0.5 : createRoof() 0.5 : createWalls(num_floors) } // 創(chuàng)建周圍環(huán)境 split(x) { 0.5 : createPark() 0.5 : createRoad() } } createRoof() { extrude(2) color(#00FF00) } createWalls(num_floors) { split(x) { 0.25 : wall() 0.5 : door() 0.25 : wall() } if (num_floors 1) { for (i; 0; num_floors - 1) { translate(y, i * 3) split(x) { 0.25 : createWindow() 0.5 : createWindow() 0.25 : createWindow() } } } } wall() { extrude(8) color(#0000FF) } door() { extrude(2) color(#000000) } createWindow() { extrude(1) color(#FFFFFF) } // 創(chuàng)建公園 createPark() { extrude(1) color(#008000) } // 創(chuàng)建道路 createRoad() { extrude(1) color(#808080) } // 定義一個(gè)Python函數(shù) def get_building_color(building_type): if building_type residential: return #FF0000 elif building_type commercial: return #00FF00 else: return #0000FF通過(guò)以上優(yōu)化技巧可以顯著提高CityEngine中規(guī)則文件的性能從而更高效地生成復(fù)雜的城市模型。希望這些內(nèi)容能夠幫助你在CityEngine中編寫更高效、更靈活的規(guī)則文件。
版權(quán)聲明: 本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

佛山網(wǎng)站的優(yōu)化做哪些網(wǎng)站可以賺錢的

佛山網(wǎng)站的優(yōu)化,做哪些網(wǎng)站可以賺錢的,免費(fèi)制作手機(jī)網(wǎng)頁(yè),京東網(wǎng)站建設(shè)及特點(diǎn)2025年移動(dòng)開發(fā)框架選型終極指南#xff1a;Framework7深度實(shí)戰(zhàn)測(cè)評(píng) 【免費(fèi)下載鏈接】framework7 Ful

2026/01/21 17:07:01

赤峰市寧城縣住房和建設(shè)局網(wǎng)站蘇州seo怎么做

赤峰市寧城縣住房和建設(shè)局網(wǎng)站,蘇州seo怎么做,東平縣住房和建設(shè)局網(wǎng)站,沒(méi)備案的網(wǎng)站收錄CVE-2021-4034是Linux系統(tǒng)中polkit組件的pkexec工具存在的一個(gè)本地權(quán)限提升問(wèn)題。該問(wèn)題

2026/01/23 02:01:01

做二手房比較好的網(wǎng)站交換友情鏈接是什么意思

做二手房比較好的網(wǎng)站,交換友情鏈接是什么意思,清明節(jié)網(wǎng)頁(yè)設(shè)計(jì)素材,做網(wǎng)站 提要求利用 Docker 構(gòu)建可復(fù)現(xiàn)的 PyTorch 深度學(xué)習(xí)環(huán)境 在深度學(xué)習(xí)項(xiàng)目中#xff0c;你是否經(jīng)歷過(guò)這樣的場(chǎng)景#x

2026/01/23 07:15:01