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

数据准备

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.rhkb.cn/news/389024.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建了Vue项目,需要导入什么插件以及怎么导入

如果你不知道怎么创建Vue项目,建议可以看一看这篇文章 怎么安装Vue的环境和搭建Vue的项目-CSDN博客 1.在idea中打开目标文件 2.系在一个插件Vue.js 3.下载ELement UI 在Terminal中输入 # 切换到项目根目录 cd vueadmin-vue # 或者直接在idea中执行下面命令 # 安装element-u…

[GYCTF2020]Blacklist1

打开题目 判断注入类型,输入1试试 输入2 输入1 判断为字符型注入 堆叠查询2;show databases;# 然后来输入2; show tables;#来查看数据库的表 然后我们通过FlagHere表来查看列输入2;show columns from FlagHere;# 来查看列 、 重新构造payload:0;HAND…

基于FPGA的高精度多通道同步AD采集系统开发及数字信号处理算法应用,基于FPGA的多通道同步AD采集系统开发及数字信号处理算法实现

FPGA多通道同步AD采集 AD7606 8通道16位高精度同步采集系统开发,采样率200KSPS,采集数据支持DDR3缓存、串口发送、USB2.0上传、千兆以太网上传等。 支持基于FPGA的数字信号处理算法开发 ID:77500703611886617 塞纳河山 FPGA多通道同步AD采集是一项基于…

官宣!新增博士硕士点审核结果已出!附查询方法

2024年7月31日,新增博士硕士学位授权结果正式公示! 多所高校,新增博士和硕士学位授权点 大家可前往该网站查询:https://zjpy.cdgdc.edu.cn/sqshjggb 另外说明一下,这些学校不一定今年就开展招生工作 一切以学校的官…

9.Redis的Set类型

Redis的Set结构与java中的HashSet类似。 可以看做是一个value为null的HashMap。 特点 1.无序 2.元素不可重复 3.查找快 4.支持交集、并集、差集等功能 应用场景 实现共同关注,共同好友。 常见命令 sadd key 元素1 元素2 给set集合添加一个或多个元素 smem…

Kimi+AiPPT的正确打开方式!文档一键转换PPT!限时免费!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工具测评,AI效率提升,AI行业洞察。关注我,AI之路不迷路,2024我们一起变强。 我之前…

做管理,一定要避开这6个坑,才能成就优秀管理者

做管理,一定要避开这6个坑,才能成就优秀管理者 一、被平庸的员工绑架 要是领导不敢或者不愿意惩罚或者开除那些没完成任务的员工,那优秀的员工就会觉得,做得好做得差都一样,那谁还愿意努力呢? 二、总想改变…

基于双PI控制器结构的六步逆变器供电无刷直流电机调速simulink仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 无刷直流电机(BLDCM)原理 4.2 六步换相逆变器 4.3 双PI控制器设计 5.完整工程文件 1.课题概述 基于双PI控制器结构的六步逆变器供电无刷直流电机调速simulink仿真。双PI控制…

DockerCompose部署示例

目录 前言 1. 初识DockerCompose 2. 安装DockerCompose 3. 部署微服务项目 1)找一个目录,创建一个新的cloud-demo文件夹。 2)在cloud-demo文件夹创建一个docker-compose.yml文件,然后编写下面内容: 3&#xff09…

【视频讲解】后端增删改查接口有什么用?

B站视频地址 B站视频地址 前言 “后端增删改查接口有什么用”,其实这句话可以拆解为下面3个问题。 接口是什么意思?后端接口是什么意思?后端接口中的增删改查接口有什么用? 1、接口 概念:接口的概念在不同的领域中…

R语言统计分析——自编函数

参考资料&#xff1a;R语言统计分析【第2版】 一个函数的结构大致如此&#xff1a; myfunction<-function(arg1,arg2,...){ statements return(object) } 函数中的对象只在函数内部使用。返回对象的数据类型是任意的。 假设我们要编写一个函数&#xff0c;用来计算数据对象…

2、postgresql运行架构

2 运行架构 以为编译安装为模板讲解各个文件功能作用&#xff0c;切换为postgres用户 目录位置数据库数据目录/pgdata/10/data安装包目录/opt/pg10/ 2.1 安装包目录详解 -bash-4.2$ pwd /opt/pg10 -bash-4.2$ tree -L 1 . . ├── bin #应用程序 ├── include #c/c…

Debian12 安装Docker 用 Docker Compose 部署WordPress

服务器准备&#xff1a; 以root账号登录&#xff0c;如果不是root&#xff0c;后面指令需要加sudo apt update apt install apt-transport-https ca-certificates curl gnupg lsb-release添加GPG密钥&#xff0c;推荐国内源 curl -fsSL https://mirrors.aliyun.com/docker…

c语言指针中“数组名的理解”以及“一维数组传参”的本质

数组名的理解 数组名就是数组首元素的地址。 例如&#xff1a;输入一个数组的所有元素&#xff0c;再打印出来。 另一种写法 以上可以看出&#xff1a;*arri&#xff09; arr[i] 也即是&#xff1a;*(iarr)i[arr] 本质上无区别 1&#xff1a;数组就是数组&#xff0c;是一块…

DirectX修复工具下载安装指南:电脑dll修复拿下!6种dll缺失修复方法!

在日常使用电脑的过程中&#xff0c;不少用户可能会遇到“DLL文件缺失”的错误提示&#xff0c;这类问题往往导致程序无法正常运行或系统出现不稳定现象。幸运的是&#xff0c;DirectX修复工具作为一款功能强大的系统维护软件&#xff0c;能够有效解决大多数DLL文件缺失问题&am…

8.Redis的List类型

Redis中的list跟java中的LinkedList比较相似&#xff0c;可以看做是一个双向链表的结构。 既可以支持正向检索和反向检索。 特点 1.有序 2.元素可以重复 3.插入和删除快 4.查询速度一般 应用场景 点赞和评论功能&#xff0c;都会存在一个顺序&#xff0c;谁先评论&…

从入门到自动化:一篇文章掌握Python的80%

Python作为一种高级编程语言&#xff0c;以其简洁明了的语法和强大的功能性&#xff0c;在全球编程社区内享有极高的声誉。本文将带领你从Python的基础语法入手&#xff0c;介绍其常用库的应用&#xff0c;以及如何将Python用于数据分析、网络爬虫和简单的自动化任务&#xff0…

写一个图片裁剪的js,JavaScript图片裁剪插件PlusCropper

在前端开发中&#xff0c;图片裁剪是一个常见的需求。本文将深入解析一个功能完善的JavaScript图片裁剪插件——PlusCropper&#xff0c;带你一步步了解其实现原理和使用方法。 一、插件概述 PlusCropper是一个轻量级的JavaScript插件&#xff0c;它允许用户在网页上交互式地…

报表系统之Cube.js

Cube.js 是一个开源的分析框架&#xff0c;专为构建数据应用和分析工具而设计。它的主要目的是简化和加速构建复杂的分析和数据可视化应用。以下是对 Cube.js 的详细介绍&#xff1a; 核心功能和特点 1. 多数据源支持 Cube.js 支持从多个数据源中提取数据&#xff0c;包括 SQ…

为什么我工作 10 年后转行当程序员?逆袭翻盘!

今天文章的主人公暂且称他为 A 君。不过 A 君有点特别&#xff0c;非科班&#xff0c;工作 10 年后才转行 iOS 程序员。今年 36 岁&#xff0c;目前在某行业头部企业任职前端负责人&#xff0c;管理 40 人的前端团队。 废话不多说&#xff0c;我们开始 A 君&#xff08;为了描…