【ArcGIS+CityEngine】自行制作Lod1城市大尺度白膜数据

news2025/1/11 12:41:51

数据准备

50多个城市建筑矢量数据

链接:https://pan.baidu.com/s/1FiwTfXDwQ6tMDRACAwUZwQ     提取码:DYSK

数据分析

数据属性Floor,为建筑物楼层信息,据此信息下面将在CityEngine软件生成Lod1白膜数据。

软件准备

CityEngine 2022

白膜数据生产

加载shapefile数据

复制shp数据放置至data目录下

编写CGA规则

读取shapefile数据的Floor字段数据
Floor*3即为建筑物高度

生成白膜模型

Generate

导出模型

CityEngine

CityEngine中的CGA(Computer Generated Architecture)函数是进行三维建模的重要工具,它们通过定义一系列的几何和纹理参数化特征来决定模型如何生成。以下是一些常见的CGA函数及其示例:

1. 基础建模函数

  • attr/const:用于定义变量或常量。
    • 示例:attr height = 20 定义了一个名为height的变量,其值为20。
  • extrude:拉伸函数,用于将二维形状拉伸为三维形状。
    • 示例:Lot --> extrude(height) 将当前形状(Lot)沿其法线方向拉伸到指定高度。
  • comp:组件分离函数,用于将形状分割成不同的部分。
    • 示例:comp(f) { top: Roof | side: Wall } 将形状的上部(top)分割为屋顶(Roof),侧面(side)分割为墙(Wall)。
  • split:切割函数,用于按指定方向或尺寸切割形状。
    • 示例:split(y, 5) { 0: Base | 5: Top } 将形状在Y轴上距底部5个单位处切割,分为底部(Base)和顶部(Top)两部分。
  • setupProjection:设置贴图坐标系,用于定义贴图如何映射到形状上。
    • 示例:setupProjection(0, scope.xy, 1, 1) 设置贴图坐标系,使其沿XY轴方向自适应贴图。

2. 房顶建模相关函数

  • roofGable:尖顶房屋函数,用于创建尖顶房顶。
    • 示例:roofGable(height, eavesLength, eavesWidth) 创建具有指定高度、屋檐长度和屋檐宽度的尖顶房顶。
  • roofShed:斜坡房顶函数,用于创建斜坡房顶。
    • 示例:roofShed(angle, startEdgeIndex) 创建具有指定角度和起始边索引的斜坡房顶。
  • roofHip:四坡顶函数,用于创建四坡顶房顶。
    • 示例:roofHip(angle, eavesLength) 创建具有指定角度和屋檐长度的四坡顶房顶。

3. 实用辅助函数

  • primitiveCube:添加立方体,用于快速创建立方体形状。
    • 示例:primitiveCube(width, height, depth) 创建一个具有指定宽度、高度和深度的立方体。
  • scatter:随机点函数,用于在指定区域内随机分布点或对象。
    • 示例:scatter(surface, 100, uniform) { Tree } 在表面上随机分布100棵树木,分布类型为均匀分布。

4. 变换函数

  • s:缩放函数,用于改变形状的大小。
    • 示例:s(2, 1, 1) 将形状在X轴上放大两倍,Y轴和Z轴保持不变。
  • t:平移函数,用于移动形状的位置。
    • 示例:t(0, 10, 0) 将形状沿Y轴正方向移动10个单位。
  • r:旋转函数,用于旋转形状。
    • 示例:r(0, 90, 0) 将形状绕Y轴旋转90度。

5. 其他函数

  • set:属性设置函数,用于设置形状的属性,如材质、颜色等。
    • 示例:set(color, "red") 将形状的颜色设置为红色。
  • case..else..:条件函数,用于根据条件执行不同的操作。
    • 示例:case condition1: operation1 else: operation2 如果满足condition1,则执行operation1,否则执行operation2。

这些函数可以组合使用,通过编写CGA规则文件来创建复杂的三维模型。CityEngine的CGA语言提供了丰富的函数和灵活的语法,使得三维建模过程更加高效和精确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MMPV+MMRV 打开物料账期

开物料账期:MMPV 查看物料账期:MMRV 可以看到当前期间和上一期间。 允许过账到上一期间:过账日期可以改到上一月。 物料账期只能一个月一个月的开,不能跨月开。最多打开两个月。 财务账期OB52

Introduction to Data Analysis with PySpark

1.DataFrame and RDDs 2.Spark Architecture 3. Data Formats and Data Sources 倘若您觉得我写的好,那么请您动动你的小手粉一下我,你的小小鼓励会带来更大的动力。Thanks.

【组合数学】【Python】【小练习】一、斯特灵近似式求阶乘

一、问题介绍 斯特灵(Stirling)近似式,是数学分析中,用于求阶乘近似值的一个常用公式,其简单的表述形式为: 二、Python实现 使用Python,循环从n1至n98,分别输出n的阶乘值、斯特灵公…

在 Debian Bookworm XFCE4 桌面环境中安装原生版 微信

絮絮叨叨: 最近在做一个POC验证,为了启用足够多的虚拟机集群,把自己办公 Debian 重装了,装成了XFCE4桌面环境,需要在这个桌面环境上安装常用的办公与会议工具,既满足POC验证环境所需、又不耽误办公写文档 …

超好用的图片批量处理工具,电商人都在用!你还不知道?

作为一名电商运营人或者经常和图片打交道的小伙伴,是不是经常被大量图片的处理工作搞得焦头烂额?今天我必须给大家分享一个超级实用的宝贝工具——图片批量处理神器! 神器介绍👇 千鹿设计助手,是一款轻量级、功能非常…

如何应对,AI发展带来的就业挑战和机遇?

机遇与挑战并存 AI Job Impact AI时代的就业挑战 随着AI技术的飞速发展,它对全球就业市场产生了深远影响。一方面,一些传统职位正逐渐被自动化取代;另一方面,AI也创造了大量新兴职位。面对这一变革,我们需积极适应&…

【Python实战因果推断】69_图因果模型4

目录 Querying a Graph in Python Querying a Graph in Python 在接下来的时刻,你将把这个图输入到一个Python库中,这将使得回答关于它的问题变得相当容易。但在你这样做之前,作为一项练习,为了更好地理解你刚刚学到的概念&#x…

(七)Appdesigner-初步入门及常用组件的使用方法说明

目录 前言 一、Appsesigner初步入门 (一)Appsesigner简介 (二)功能布局 二、常用组件 (一)基础知识 (二)实际操作 1.HTML 2.下拉框 3.切换按钮组 4.列表框 5.单选按钮组…

ShardingSphere实战(4)- 广播表和默认数据源

上篇博客,我们讲了 ShardingSphere实战(3)- 快速实现分库分表 ,这篇博客,我们解决分库分表以后遗留的两个小问题。 一、广播表 1. 广播表介绍 广播表(Broadcast Table)是一种特殊的表类型&am…

SSM学习10:整合MyBatis、MyBatisPlus

SpringBoot整合MyBatis 与创建spring web项目类型,添加上相应依赖 实体类 public class Account {private int id;public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String …

word打印---doc转html后进行打印,window.print、print-js、vue-print-nb

提示&#xff1a;word预览方式—插件 文章目录 [TOC](文章目录) 前言一、vue-office-docx把docx转换html二、调取window.print三、print-js四、vue-print-nb总结 前言 word预览 一、vue-office-docx把docx转换html npm install vue-office-docx -S-DofficeDocx.vue <templ…

Meta发布最新图形分割模型SAM 2:实时视频分割性能大幅提升

Meta发布最新图形分割模型SAM 2:实时视频分割性能大幅提升 在人工智能领域,图形分割是一项重要的技术,它能够识别和提取图像或视频中的目标对象。Meta近期发布的SAM 2(Segment Anything 2)模型在这一领域取得了重大突破。本文将详细介绍SAM 2的创新之处及其在视频对象实时…

vue3学习day02-组合式API-setup选项、reactive(将非响应式数据变为响应式数据)、computed(基本思想和vue2一致)、watch

6、setup选项 &#xff08;1&#xff09;setup选项的执行时机&#xff08;获取不到this&#xff0c;this是undefined&#xff09;&#xff1a;beforeCreate函数之前&#xff0c;自动执行 &#xff08;2&#xff09;写法 1&#xff09;原始写法 需要返回 ①在script中导出s…

【DeepSeek-V2 技术要点介绍】

DeepSeek-V2 是一款基于 Transformer 架构的先进模型&#xff0c;其中每个Transformer块由一个注意力模块和一个前馈网络&#xff08;FFN)组成。然而&#xff0c;对于注意力模块和 FFN&#xff0c;研究团队设计并采用了创新的架构。旨在通过创新的设计提升推理和训练效率。以下…

行为验证码的分类推荐

行为验证码 行为验证码是一种用于确认用户身份或验证用户行为的技术手段&#xff0c;通常用于防止自动化程序&#xff08;例如机器人&#xff09;对网站或应用程序进行恶意操作。它的核心思想是通过要求用户执行特定的交互动作来验证其为真实的人类 是一种通过用户的操作行为…

SDK 多版本管理控制利器 SDKMAN 介绍及使用

一、SDKMAN 假如你同时参与了一个使用JDK 8的项目和一个采用JDK 17特性的项目。每次在两个项目之间切换时&#xff0c;你都面临着版本冲突的问题。如果有那么一个工具类似于 Python 中的 anaconda 工具&#xff0c;可以帮助你管理不同版本的 SDK &#xff0c;是不是非常有用&a…

【32单片机篇】项目:LCD实时显示温湿度

一、项目需求 使用 ESP8266 连接 OneNET 云平台&#xff0c;并通过 MQTT 协议上传 DHT11 获取的温湿度值。 二、项目框图 三、硬件部分 四、项目源码及实现 1.项目源码 https://gitee.com/GeekerGao/upload-the-temperature-and-humidity-to-OneNET 2.项目实现

C语言 之 理解数组(8)数组和指针相关的题目 详细解答 快来观看

文章目录 1. 数组和指针相关题1.1 一维数组1.2 字符数组代码1代码2代码3代码4代码5代码6 1.3 二维数组 1. 数组和指针相关题 这里主要讲解的是通过sizeof和strlen来对数组和指针进行更深入的一些了解&#xff0c;建议有兴趣与初学者可以先尝试自己思考来完成。 1.1 一维数组 …

GPT-Pilot —— 让AI来写代码

1.概述 什么是GPT-Pilot&#xff1f; 一个AI开发者伴侣&#xff0c;可以从0开始构建应用程序&#xff0c;可以自己编写代码、配置开发环境、管理开发任务、调试代码。 项目地址&#xff1a;https://github.com/Pythagora-io/gpt-pilot 不仅仅是一个自动完成功能或 PR 消息的助…

CSP-J 2022 读程题16.答案与解析

知识点 普及 逻辑运算 16. 01 #include <iostream> 02 03 using namespace std; 04 05 int main() 06 { 07 unsigned short x, y; 08 cin >> x >> y; 09 x (x | x << 2) & 0x33; 10 x (x | x << 1) & 0x55; 11 y (y …