Blender中实现一个Mobius环
莫比乌斯带:也叫单侧曲面环,简称单曲环,一只小虫可以爬遍整个曲面而不必跨过它的边缘。
利用blender的python库,可以用20行代码实现一个单曲环,这大概是全网最简洁的算法了:
from mathutils import *
from math import *
from bpy import *
quad = 30 # 四边形的数量
radius = 4 # 半径
width = 2 # 四边形的高
verts = []
faces = []
for i in range(quad):v1 = Vector((0, 0, width/2))v2 = -v1I = i*2for v in [v1, v2]:v.rotate(Euler((0, pi * i/quad, 0)))v[0] += radiusv.rotate(Euler((0, 0, pi * I/quad)))verts.extend([v1, v2])faces.append([I, I+1, I+3, I+2])
faces[-1][-2:] = 0, 1
mesh = data.meshes.new("mobius")
mesh.from_pydata(verts, [], faces)
context.collection.objects.link(data.objects.new("mobius", mesh))
mathutils:blender的数学库
math:python标准库
bpy:blender库
其实原理很简单,就是将一个圆柱侧面转换成mobius:将侧面的每条高按阶旋转1/n的pi,其中n为高的数量。
其中橙色的环切线是一个标准的圆环,半径为代码中的radius。
python相对于JavaScript的优势:
python支持运算符重载,这在做矢量/矩阵运算时很方便
python支持命名空间的解构,不用通过[模块.成员]的方式访问
在CG领域,python更受青睐,无论是建模软件还是渲染引擎
往期精彩回顾:
《<video>的录制》
《用three.js渲染上海外滩模型》
《用canvas实现一个雷达图》
Blender中实现一个Mobius环相关推荐
- 在Blender中做一个小独角兽
自我介绍 我叫劳拉·梅卡达尔(Laura Mercadal),现居法国.我是自由职业3D艺术家,和广告或动画工作室合作,主要从事建模,着色器和照明的工作. 我在法国里昂的Emile Cohl学校学习了 ...
- 尝试在blender中渲染一个最简单的动画
我想看下blender中渲染的最基础的操作是什么,下面是我做的步骤: 步骤 1. K动画 作为测试,我旋转了开始场景中的正方体,动画的范围是1~12. 2. 在Properties编辑器中的Outpu ...
- 在blender中使用python脚本批量复制平移生成模型
本案例需求: 从基本的建筑单元按照字形平面布局生成综合建筑体. 先在blender中用手工制作好一个建筑单元(名称定为"cube"),然后在blender中打开一个"Te ...
- blender中如何将窗口移动到另一块屏幕上,即新开一个窗口,作用到分屏上
在 Blender 中,您可以通过以下步骤将窗口移动到另一块屏幕上: 打开 Blender 的 "User Preferences" 窗口(在 Windows 系统中,您可以在菜单 ...
- Blender中的大师级3D环境场景制作学习教程
你需要在一个地方学习的一切 在本课程中,您将学习Blender中景观创建的每一个重要工作流程,而无需使用任何付费附加组件或资产. 你将学习如何创造山脉.海洋.森林.沙漠.云层和天气影响.无需搜索描述特 ...
- Blender中的主程序纹理学习课程 Master Procedural Texturing in Blender
挖掘Blender不可思议的强大节点编辑器的无限潜力. 你会学到: 逐步构建高级和高度可定制的程序纹理. 将许多不同层次的细节结合成一个复杂而现实的结果. 从头开始构建高级程序纹理背后的思维过程. 使 ...
- 使用Blender中的几何节点创建程序对象
大小解压后:2.4G 持续时间3h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 使用Blender中的几何节点按程序创建对象 信息: 使用Blender中的几 ...
- UE5和Blender中的完整场景环境创建学习教程
UE5和Blender中的完整环境创建–深入课程 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确)|时长:80 ...
- 在Blender中制作火箭发射烟雾和火焰模拟的动画
大小:1.25G 时长1h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 在Blender中制作火箭发射烟雾和火焰模拟的动画 Animate a Rocket ...
最新文章
- 2019年10个最受欢迎的JavaScript动画库!
- matlab中怎样画出散点图,将这些散点连接成线
- Runloop循环机制
- 动态SQL中变量赋值
- 《我是歌手》你是歌手你会选什么时间参赛?
- java静态代码块和构造方法_Java静态代码块和构造方法执行顺序
- mysql自动去重_关于mysql自联去重的一些记录
- mysql执行后缀.sql_MySQL命令执行sql文件的两种方法
- java学习第七周总结
- css中white-space的值pre-wrap
- html5导航 按钮,CSS实例:超酷的网站导航按钮
- 王阳明:人心本是光明之镜 奈何因私欲黯淡无光
- 阅读笔记WS-DAN
- 【模型压缩】关于知识蒸馏(Distill)的一次实验
- cmake pylon6 opencv
- 车载网络 - Autosar网络管理 - 基本概念
- 正则处理手机号码格式
- 蓝光文件夹因缺少文件结构而无法播放
- 好用的名人名言API推荐
- iPhone开发学习笔记
热门文章
- 《Autosar_BSW高阶配置》总目录_培训教程持续更新中...
- Centos6.8配置HTTPS
- 22 谱聚类 Spectral Clustering
- jQuery 点击获取验证码,倒计时30秒
- Alpine跑php项目,Dockerfile构建PHP开发镜像:Alpine+Nginx+PHP7+Supervisor+Crontab+Laravel
- 2011蓝桥杯java试题及部分参考答案
- 超详细Kafka架构原理图(观止)
- java面向对象程序基础实验_20165115 实验二《Java面向对象程序设计》实验报告
- C语言求半径为8的圆周长和圆面积。
- 洞见网络安全产融风口趋势