Python 中的花卉矩阵组合

使用场景描述 (rib) 协议编写脚本的基础知识。通过创建在 3D 空间中转换的基本几何图形,解决了 xyz 坐标系的基础知识。初步渲染是使用基本着色完成的,因此可以更容易地看到几何体。RenderMan

图1

图1

图 1 是我作为作业参考的示例图片,并尝试匹配 中的图片。为了完成这项任务,我使用了以下语言和工具:RenderMan

  1. Cutter(一个方便的文本编辑器,用于各种脚本语言,并与许多兼容的渲染器(例如,等)以及建模包(如Maya等)紧密集成。作者马尔科姆·凯森(Malcom Kesson)是SCAD的一位了不起的家伙,他是这个工具的作者,他也是我所关注的这些作业格式的幕后推手。这是他的链接:www.fundza.com 和 http://www.sfdm.scad.edu/faculty/mkesson/。RenderManPRMan3Delight
  2. Python(一种非常强大的语言,因其简洁、可移植性和更高级别的功能而迅速成为大多数 CG 应用程序的首选脚本语言)。从这里下载:Welcome to Python.org
  3. 3Delight(一个了不起的兼容渲染器,是你能得到的最好的渲染器,完全免费!从这里获取:3DelightRenderManRenderMan

对于这项任务,我将任务分为不同的阶段。以下是各个阶段及其详细信息以及代码片段。

第 1 步 - 向日葵的内部图案

在仔细观察参考图像中看到的向日葵(向日葵有很多变体,所以我只是坚持参考图像中的向日葵),可以看到这种向日葵在种子内部排列的方式上表现出非常奇特的图案。谷歌立即向我提供了更多信息。

Matlab 示例

因此,第一项任务是确定向日葵的内部图案,该图案遵循从向日葵的维基百科条目下载的matlab样本中显示的特定图案。它使用以下数学公式来形成此形状:

<span style="color:black"><span style="background-color:#fbedbb"><strong>// n=1:500;</strong>
<strong>// r=sqrt(n);</strong>
<strong>// t=137.5*pi/180*n;</strong>
<strong>// plot(r.*cos(t),r.*sin(t),<span style="color:purple">'</span><span style="color:purple">o'</span>)</strong></span></span>

使用刀具对肋骨进行原型设计,然后使用 Python 运行循环,我使用 Cone 原语(而不是在上面的 matlab 示例代码中绘制 '')来制作向日葵的种子图案。以下是代码片段和呈现视图:o

<span style="color:#111111"><span style="color:black"><span style="background-color:#fbedbb">// While(n < div):
//    p=0.1
//    r=0.25*sqrt(n)
//    a=137.5*pi/180*n
//    X=r*cos(a)
//    Y=r*sin(a)
//    Z=6-(N/div)*6
//    Riattributebegin()
//    Riscale(a/div,a/div,a/div)
//    Ritranslate(x,y,z)
//    RiColor((0.63921568627450980392156862745098,
//             0.50980392156862745098039215686275,
//             0.13725490196078431372549019607843))
//    RiCone(0.2,0.2,360)
//    Riattributeend()
//    n=n+1</span></span></span>

上面的 matlab 代码只会在 2D(XY 平面)中绘制种子图案,但实际上,种子排列在球体上而不是平面上。人们可以使用真正的球面坐标来找到球体顶部锥体的分布,但相反,我作弊了,只是在圆锥体分布的假想球体的半径和这个球体的原点(在本例中为零)之间使用了线性插值。插值因子是上述循环中使用的逐渐增加的半径。这样一来,当 matlab 示例代码通过将半径计算为循环迭代器的平方根来不断增加半径时,我不断将种子坐标的值一直减小到零,以便给出一个“凹凸”形式,其中种子更靠近中心的相机,并在它们向边界移动时逐渐向后推。在计算出 x、y 和 z 坐标的适当值后,还使用线性插值计算比例因子,以给出锥体(种子)在向边界移动时放大的效果。最后,在绘制圆锥基元之前,使用适当的肋骨平移和缩放命令应用所有这些值。

第 2 步 - 随机化基于圆锥体的圆

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

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

相关文章

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测(Matlab)

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09; 目录 SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现MFO-CNN…

Python 机器学习 基础 之 学习 基础环境搭建

Python 机器学习 基础 之 学习 基础环境搭建 目录 Python 机器学习 基础 之 学习 基础环境搭建 一、简单介绍 二、什么是机器学习 三、python 环境的搭建 1、Python 安装包下载 2、这里以 下载 Python 3.10.9 为例 3、安装 Python 3.10.9 4、检验 python 是否安装成功&…

JavaScript云LIS系统源码 B/S架构+SaaS模式+SQLserver可扩展性强,商业运营级区域医疗云LIS系统源码

JavaScript云LIS系统源码 B/S架构SaaS模式SQLserver可扩展性强&#xff0c;商业运营级区域医疗云LIS系统源码 云LIS&#xff08;云实验室信息管理系统&#xff09;是一种结合了计算机网络化信息系统的技术&#xff0c;它无缝嵌入到云HIS&#xff08;医院信息系统&#xff09;…

C++:运算符重载-加号(+)

在C中&#xff0c;运算符重载允许重新定义已有运算符的行为&#xff0c;以便让它们适用于自定义类型。这样&#xff0c;你可以通过自定义类型使用内置运算符&#xff0c;使得代码更加直观和易读。 此时我在代码中定义一个新类MyString&#xff1a; class MyString { public:i…

jupyter notebook导出pdf文件显示不了中文

找到文件index.tex.j2&#xff0c;我的在 C:\Users\Administrator\miniconda3\envs\opencv2\share\jupyter\nbconvert\templates\latex 我安装miniconda3并配置opencv2所需要的环境, 配置前 最后&#xff1a;用文本编辑器打开&#xff0c;修改图中article为ctexart&#xf…

滑动窗口详解

目录 一、滑动窗口的特定步骤&#xff1a; 二、题目解析 1、⻓度最⼩的⼦数组---点击跳转题目 3、最⼤连续 1 的个数 III----点击跳转题目 4、将 x 减到 0 的最⼩操作数----点击跳转题目 5、⽔果成篮----点击跳转题目 滑动窗口是双指针算法中细分的一种&#xff0c;它由暴…

数组模拟双链表-java

通过数组来模拟双链表&#xff0c;并执行一些插入和删除的功能。 目录 一、问题描述 二、模拟思路 1.变量解释 2.数组初始化 3.在下标是k的结点后面插入一个结点 4.删除下标为k的结点 5.基本功能解释 三、代码如下 1.代码如下&#xff1a; 2.读入数据&#xff1a; 3…

【Vue 2.x】学习vue之二组件

文章目录 Vue二组件第五章es6文件导入出1、导出export 组件&#xff08;component&#xff09;1、定义2、模块化与组件化3、组件的分类1、非单文件组件非单文件三步骤创建组件标准写法简化写法组件的嵌套非单文件的不足之处 2、单文件组件vue单文件组件的使用脚手架创建项目重点…

Flask教程2:flask高级视图

文章目录 add_url_rule类视图的引入装饰器的自定义与使用蓝图的使用url_prefix设置蓝图前缀 add_url_rule 欲实现url与视图函数的绑定&#xff0c;除了使用路由装饰器app.route&#xff0c;我们还可以通过add_url_rule(rule,endpointNone,view_funcNone)方法&#xff0c;其中&…

【网站项目】戒烟网站

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

2024 五一杯高校数学建模邀请赛(C题)| 煤矿深部开采冲击地压危险预测 |建模秘籍文章代码思路大全

铛铛&#xff01;小秘籍来咯&#xff01; 小秘籍团队独辟蹊径&#xff0c;构建了这一题的详细解答哦&#xff01; 为大家量身打造创新解决方案。小秘籍团队&#xff0c;始终引领着建模问题求解的风潮。 抓紧小秘籍&#xff0c;我们出发吧~ 让我们看看五一杯的C题&#xff01; 完…

专注 APT 攻击与防御—工具介绍-the-backdoor-factory

工具介绍 the-backdoor-factory 项目地址&#xff1a;GitHub - secretsquirrel/the-backdoor-factory: Patch PE, ELF, Mach-O binaries with shellcode new version in development, available only to sponsors 原理 可执行二进制文件中有大量的 00&#xff0c;这些 00 是…