数学图形之罗马曲面(RomanSurface)
罗马曲面,像是一个被捏扁的正四面体.
本文将展示罗马曲面的生成算法和切图,使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.QQ交流群: 367752815
维基上关于罗马曲面的解释如下:
The Roman surface or Steiner surface (so called because Jakob Steiner was in Rome when he thought of it) is a self-intersecting mapping of the real projective plane into three-dimensional space, with an unusually high degree of symmetry. This mapping is not an immersion of the projective plane; however, the figure resulting from removing six singular points is one.
The simplest construction is as the image of a sphere centered at the origin under the map f(x,y,z) = (yz,xz,xy). This gives an implicitformula of
Also, taking a parametrization of the sphere in terms of longitude (θ) and latitude (φ), gives parametric equations for the Roman surface as follows:
- x = r2 cos θ cos φ sin φ
- y = r2 sin θ cos φ sin φ
- z = r2 cos θ sin θ cos2 φ.
罗马曲面脚本代码:
#http://www.ipfw.edu/departments/coas/depts/math/coffman/steinersurface.html
#Steiner's Roman Surface. Three double lines, six pinch points, and a triple point.
#plot3d([r^*sin(t)*cos(t), r*sin(t)*(-r^)^(/), r*cos(t)*(-r^)^(/)], r=.., t=..*Pi, numpoints=) vertices = D1: D2:
u = from to (PI) D1
v = from to (PI) D2 a = sin(u)
b = cos(u) c = sin(v)
d = cos(v) r = 5.0 x = r*r*b*d*c
y = r*r*a*d*c
z = r*r*b*a*d*d

我还找到几个与罗马曲面相关的图形
The three double lines of Steiner's Roman Surface coincide
vertices = D1:100 D2:100
t = from 0 to (PI*2) D1
r = from 0 to 1 D2 y = 1-r^2+(r^2)*(sin(t)^2)
x = (r^2)*(sin(t)^2) + 2*(r^2)*sin(t)*cos(t)
z = sqrt((1-r^2)/2) * r * (sin(t)+cos(t)) x = x*5
y = y*5
z = z*5

Two of the three double lines in Steiner's Roman Surface
vertices = D1:100 D2:100
t = from 0 to (PI*2) D1
r = from 0 to 1 D2 x = 2*r*cos(t)*sqrt(1-r^2)
y = 2*r*sin(t)*sqrt(1-r^2)
z = 1-2*r*r*(cos(t)^2) x = x*5
y = y*5
z = z*5

数学图形之罗马曲面(RomanSurface)的更多相关文章
- 数学图形之SineSurface与粽子曲面
SineSurface直译为正弦曲面.这有可能和你想象的正弦曲线不一样.如果把正弦曲线绕Y轴旋转,得到的该是正弦波曲面.这个曲面与上一节中的罗马曲面有些相似,那个是被捏过的正四面体,这个则是个被捏过正 ...
- 数学图形之贝塞尔(Bézier)曲面
前面章节中讲了贝塞尔(Bézier)曲线,而贝塞尔曲面是对其多一个维度的扩展.其公式依然是曲线的公式: . 而之所以由曲线变成曲面,是将顶点横向连了再纵向连. 很多计算机图形学的教程都会有贝塞尔曲面的 ...
- 数学图形之将曲线(curve)转化成曲面管
在我关于数学图形的博客中,一开始讲曲线的生成算法.然后在最近的章节中介绍了圆环,还介绍了螺旋管以及海螺的生成算法.一类是曲线,一类是环面,为什么不将曲线变成环的图形,毕竟曲线看上去太单薄了,这一节我将 ...
- 数学图形之Boy surface
这是一个姓Boy的人发现的,所以取名为Boy surface.该图形与罗马图形有点相似,都是三分的图形.它甚至可以说是由罗马曲面变化而成的. 本文将展示几种Boy曲面的生成算法和切图,使用自己定义语法 ...
- WHY数学图形可视化工具(开源)
WHY数学图形可视化工具 软件下载地址:http://files.cnblogs.com/WhyEngine/WhyMathGraph.zip 源码下载地址: http://pan.baidu.com ...
- 数学图形之Breather surface
这是一种挺漂亮的曲面图形,可惜没有找到太多的相关解释. In differential equations, a breather surface is a mathematical surface ...
- 数学图形之Kuen Surface
Kuen Surface应该又是一个以数学家名字命名的曲面.本文将展示几种Kuen Surface的生成算法和切图,其中有的是标准的,有的只是相似.使用自己定义语法的脚本代码生成数学图形.相关软件参见 ...
- 数学图形之克莱因瓶(klein bottle)
克莱因瓶是一种内外两面在同一个曲面上的图形. 在数学领域中,克莱因瓶(德语:Kleinsche Flasche)是指一种无定向性的平面,比如二维平面,就没有“内部”和“外部”之分.克莱因瓶最初的概念提 ...
- 数学图形之莫比乌斯带(mobius)
莫比乌斯带,又被译作:莫比斯环,梅比斯環或麦比乌斯带.是一种拓扑学结构,它只有一个面(表面),和一个边界.即它的正反两面在同一个曲面上,左右两个边在同一条曲线上.看它的名字很洋气,听它的特征很玄乎,实 ...
随机推荐
- Jersey入门三:创建一个JavaEE的Web项目
1.在终端中输入如下命令,创建一个名为的simple-service-webapp项目: mvn archetype:generate -DarchetypeArtifactId=jersey-qui ...
- Docker应用系列(六)| 如何去掉sudo及避免权限问题
一.如何在使用docker时去掉sudo 1.添加账户 $ sudo groupadd docker 2.授权给docker账户 sudo gpasswd -a yourname docker 3.重 ...
- JAVAEE——ssm综合练习:CRM系统(包含ssm整合)
1 CRM项目外观 1. 开发环境 IDE: Eclipse Mars2 Jdk: 1.7 数据库: MySQL 2. 创建数据库 数据库sql文件位置如下图: 创建crm数据库,执行sql 效果 ...
- Lost connection to MySQL server at 'reading initial communication packet', system error: 0的一个解决方案
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT在icmp之前/etc/init.d/iptables restar ...
- C/C++ 之输入输出
因为C++向下兼容C,所以有多种输入输出的方式,cin/cout十分简洁,但个人觉得不如scanf/printf来的强大,而且在做算法题时,后者运行速度也快些. scanf/printf #inclu ...
- Codeforces #254 div1 B. DZY Loves FFT 暴力乱搞
B. DZY Loves FFT 题目连接: http://codeforces.com/contest/444/problem/B Description DZY loves Fast Fourie ...
- hdoj 1753 大明A+B 高精度/java
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- C#高级编程9-第9章 字符串和正则表达式
字符串和正则表达式 String类 String类对象是不可改变的,对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显 ...
- [Visual Studio] VS2012调试时很慢的解决方案
1.转自http://guooge.com/archives/408.html VS2010调试极慢获取出现死机,因为启动了IntelliTrace Visual Studio 2010 Ulti ...
- 机器学习(1):Logistic回归原理及其实现
Logistic回归是机器学习中非常经典的一个方法,主要用于解决二分类问题,它是多分类问题softmax的基础,而softmax在深度学习中的网络后端做为常用的分类器,接下来我们将从原理和实现来阐述该 ...
