NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 28590|回复: 30
打印 上一主题 下一主题

[个人作品] 伪数学曲面

  [复制链接]
1m
发表于 2012-8-15 08:20:05 | 显示全部楼层
Trefoil Knot
Graphics by Paul Bourke
November 2004      x = 41 cos(u) - 18 sin(u) - 83 cos(2 u) - 83 sin(2 u) - 11 cos(3 u) + 27 sin(3 u)
y = 36 cos(u) + 27 sin(u) - 113 cos(2 u) + 30 sin(2 u) + 11 cos(3 u) - 27 sin(3 u)
z = 45 sin(u) - 30 cos(2 u) + 113 sin(2 u) - 11 cos(3 u) + 27 sin(3 u)
where 0 < u < 2 pi
2m
发表于 2012-8-15 08:21:00 | 显示全部楼层
看到这些公式,什么去用gh应用它呢  截个gh图看看,谢谢!
3m
发表于 2012-8-15 08:21:49 | 显示全部楼层
Supershapes (Superformula)
Written by Paul Bourke
March 2002
Based upon equations by Johan Gielis
Intended as a modelling framework for natural forms.


See also Superellipse and Supershape in 3D
     




--------------------------------------------------------------------------------


The supershape equation is an extension of the both the equation of the sphere and ellipse

(x / a)2 + (y / b)2 = r2
and even the superellipse given here. The general formula for the supershape is given below.



Where r and phi are polar coordinates (radius,angle). n1, n2, n3, and m are real numbers. a and b are real numbers excluding zero.

m = 0
This results in circles, namely r = 1   
n1 = n2 = n3 = 1
Increasing m adds rotational symmetry to the shape. This is generally the case for other values of the n parameters. The curves are repeated in sections of the circle of angle 2pi/m, this is apparent in most of the following examples for integer values of m.  m=1 m=2
m=3 m=4
m=5 m=6

n1 = n2 = n3 = 0.3
As the n's are kept equal but reduced the form becomes increasingly pinched.  m=1 m=2
m=3 m=4
m=5 m=6

If n1 is slightly larger than n2 and n3 then bloated forms result. The examples on the right have n1 = 40 and n2 = n3 = 10.  m=1 m=2
m=3 m=4
m=5 m=6

Polygonal shapes are achieved with very large values of n1 and large but equal values for n2 and n3.  m=3 m=4
m=5 m=6

Asymmetric forms can be created by using different values for the n's. The following example have n1 = 60, n2 = 55 and n3 = 30.  m=3 m=4
m=5 m=6

For non integral values of m the form is still closed for rational values. The following are example with n1 = n2 = n3 = 0.3. The angle phi needs to extend from 0 to 12 pi.  m=1/6 m=7/6
m=13/6 m=19/6

Smooth starfish shapes result from smaller values of n1 than the n2 and n3. The following examples have m=5 and n2 = n3 = 1.7.  n1=0.50 n1=0.20
n1=0.10 n1=0.02


Other examples

   

   

   
Source code
Given a value of phi the following function evaluates the supershape function and calculates (x,y).


void Eval(double m,double n1,double n2,double n3,double phi,double *x,double *y)
{
   double r;
   double t1,t2;
   double a=1,b=1;

   t1 = cos(m * phi / 4) / a;
   t1 = ABS(t1);
   t1 = pow(t1,n2);

   t2 = sin(m * phi / 4) / b;
   t2 = ABS(t2);
   t2 = pow(t2,n3);

   r = pow(t1+t2,1/n1);
   if (ABS(r) == 0) {
      *x = 0;
      *y = 0;
   } else {
      r = 1 / r;
      *x = r * cos(phi);
      *y = r * sin(phi);
   }
}

So it might be called as follows


   for (i=0;i<=NP;i++) {
      phi = i * TWOPI / NP;
      Eval(m,n1,n2,n3,phi,&x,&y);
      --- do something with the point x,y ---
   }

4m
发表于 2012-8-15 09:51:24 | 显示全部楼层
谢谢

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-5-11 23:23 , Processed in 0.064585 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表