莫比乌斯带:也叫单侧曲面环,简称单曲环,一只小虫可以爬遍整个曲面而不必跨过它的边缘。

利用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的优势:

  1. python支持运算符重载,这在做矢量/矩阵运算时很方便

  2. python支持命名空间的解构,不用通过[模块.成员]的方式访问

  3. 在CG领域,python更受青睐,无论是建模软件还是渲染引擎

往期精彩回顾:

  • 《<video>的录制》

  • 《用three.js渲染上海外滩模型》

  • 《用canvas实现一个雷达图》

Blender中实现一个Mobius环相关推荐

  1. 在Blender中做一个小独角兽

    自我介绍 我叫劳拉·梅卡达尔(Laura Mercadal),现居法国.我是自由职业3D艺术家,和广告或动画工作室合作,主要从事建模,着色器和照明的工作. 我在法国里昂的Emile Cohl学校学习了 ...

  2. 尝试在blender中渲染一个最简单的动画

    我想看下blender中渲染的最基础的操作是什么,下面是我做的步骤: 步骤 1. K动画 作为测试,我旋转了开始场景中的正方体,动画的范围是1~12. 2. 在Properties编辑器中的Outpu ...

  3. 在blender中使用python脚本批量复制平移生成模型

    本案例需求: 从基本的建筑单元按照字形平面布局生成综合建筑体. 先在blender中用手工制作好一个建筑单元(名称定为"cube"),然后在blender中打开一个"Te ...

  4. blender中如何将窗口移动到另一块屏幕上,即新开一个窗口,作用到分屏上

    在 Blender 中,您可以通过以下步骤将窗口移动到另一块屏幕上: 打开 Blender 的 "User Preferences" 窗口(在 Windows 系统中,您可以在菜单 ...

  5. Blender中的大师级3D环境场景制作学习教程

    你需要在一个地方学习的一切 在本课程中,您将学习Blender中景观创建的每一个重要工作流程,而无需使用任何付费附加组件或资产. 你将学习如何创造山脉.海洋.森林.沙漠.云层和天气影响.无需搜索描述特 ...

  6. Blender中的主程序纹理学习课程 Master Procedural Texturing in Blender

    挖掘Blender不可思议的强大节点编辑器的无限潜力. 你会学到: 逐步构建高级和高度可定制的程序纹理. 将许多不同层次的细节结合成一个复杂而现实的结果. 从头开始构建高级程序纹理背后的思维过程. 使 ...

  7. 使用Blender中的几何节点创建程序对象

    大小解压后:2.4G 持续时间3h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 使用Blender中的几何节点按程序创建对象 信息: 使用Blender中的几 ...

  8. UE5和Blender中的完整场景环境创建学习教程

    UE5和Blender中的完整环境创建–深入课程 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确)|时长:80 ...

  9. 在Blender中制作火箭发射烟雾和火焰模拟的动画

    大小:1.25G 时长1h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 在Blender中制作火箭发射烟雾和火焰模拟的动画 Animate a Rocket ...

最新文章

  1. 2019年10个最受欢迎的JavaScript动画库!
  2. matlab中怎样画出散点图,将这些散点连接成线
  3. Runloop循环机制
  4. 动态SQL中变量赋值
  5. 《我是歌手》你是歌手你会选什么时间参赛?
  6. java静态代码块和构造方法_Java静态代码块和构造方法执行顺序
  7. mysql自动去重_关于mysql自联去重的一些记录
  8. mysql执行后缀.sql_MySQL命令执行sql文件的两种方法
  9. java学习第七周总结
  10. css中white-space的值pre-wrap
  11. html5导航 按钮,CSS实例:超酷的网站导航按钮
  12. 王阳明:人心本是光明之镜 奈何因私欲黯淡无光
  13. 阅读笔记WS-DAN
  14. 【模型压缩】关于知识蒸馏(Distill)的一次实验
  15. cmake pylon6 opencv
  16. 车载网络 - Autosar网络管理 - 基本概念
  17. 正则处理手机号码格式
  18. 蓝光文件夹因缺少文件结构而无法播放
  19. 好用的名人名言API推荐
  20. iPhone开发学习笔记

热门文章

  1. 《Autosar_BSW高阶配置》总目录_培训教程持续更新中...
  2. Centos6.8配置HTTPS
  3. 22 谱聚类 Spectral Clustering
  4. jQuery 点击获取验证码,倒计时30秒
  5. Alpine跑php项目,Dockerfile构建PHP开发镜像:Alpine+Nginx+PHP7+Supervisor+Crontab+Laravel
  6. 2011蓝桥杯java试题及部分参考答案
  7. 超详细Kafka架构原理图(观止)
  8. java面向对象程序基础实验_20165115 实验二《Java面向对象程序设计》实验报告
  9. C语言求半径为8的圆周长和圆面积。
  10. 洞见网络安全产融风口趋势