优美的曲线-译

来源:Some equations that describe beautiful curves

链接:

1. iviveros.github.io/param-eq/#introduction

2. mathworld.wolfram.com/ButterflyCurve.html


介绍
在本文中,我收集了一些生成我喜欢的曲线的方程式。
如果你喜欢数学艺术,我建议你看看哈米德·纳德里·叶加内的作品,他根据数学概念构建了美丽的图像。
蝴蝶曲线
Fay(1989)在论文中定义了蝶形曲线。该曲线根据以下参数方程进行描述:

x=sin(t)(ecos(t)−2cos(4t)−sin5(t12))

y=cos(t)(ecos(t)−2cos(4t)−sin5(t12))

t is in the range: [0,12π]

x=sin(t)\Big(e^{cos(t)}-2 \, cos(4t)-sin^5\big(\frac{t}{12}\big)\Big)

y=cos(t)\Big(e^{cos(t)}-2 \,cos(4t)-sin^5\big(\frac{t}{12}\big)\Big)

注意,t的范围。

绘制曲线网站:www.desmos.com/calculator/igjkczpymw?lang=zh-CN

# the function butterfly generates a data frame
# by evaluating the parametric equations that
# define the rose curve in the range of 0 to 12pi
butterfly <- function(n=1000){
  data.frame(t = seq(0,12*pi,length.out = n)) %>%
    mutate(x = sin(t)*(exp(cos(t))-2*cos(4*t)-(sin(t/12))^5),
           y = cos(t)*(exp(cos(t))-2*cos(4*t)-(sin(t/12))^5))
}

玫瑰
该曲线由以下参数方程描述:

x=cos(k \, \theta) \, cos(\theta)

y=cos(k \, \theta) \, sin(\theta) 

n和d值组合的玫瑰曲线,定义k=n/d。
n和d跨度在[1,10]范围内

rose_curve <- function(n,d) {
  data.frame(theta = seq(0, 32*pi,pi/180)) %>%
    mutate(x = cos(n/d*theta)*cos(theta),
           y = cos(n/d*theta)*sin(theta)) %>%
    select(x, y)
}

 


次摆线
有关内摆线的详细信息,请参阅Wolfram MathWorld文章。
当x(0)=a时,定义内摆线的参数方程为:

x=(a-b)\,cos(t) + b\,cos\big(\frac{a-b}{b}t\big)

y=(a-b)\,sin(t) - b\,sin\big(\frac{a-b}{b}t\big)

 

hypocycloid <- function(n = 200, a_inc,b_inc,t_inc){
  a0 = seq(1,n)
  b0 = seq(1,n)
  t0 = seq(0,n-1)
  for (i in 2:n) {
    a0[i]=a0[i-1]+a_inc
    b0[i]=b0[i-1]+b_inc
    t0[i]=t0[i-1]+t_inc
  }
  data.frame(a0,b0,t0) %>%
    mutate(  x0 = (a0 - b0)*cos(t0) + b0 * cos((a0/b0-1)*t0),
             y0 = (a0 - b0)*sin(t0) - b0 * sin((a0/b0-1)*t0),
             x1 = c(x0[2:n],x0[1]),
             y1 = c(y0[2:n],y0[1])) %>%
    select(x0,y0,x1,y1,t0)
}

Clifford吸引子
Clifford吸引子由以下方程定义:
xn+1=sin(ayn)+ccos(axn)
yn+1=sin(bxn)+dcos(byn)

x_{n+1}=sin(a\,y_n) + c\, cos(a\,x_n)

y_{n+1}=sin(b\,x_n) + d\, cos(b\,y_n)


上述方程确定了从点(x0,y0)开始并根据参数a、b、c和d的粒子离散步的(X,Y)位置。
功能选择基于Antonio Sánchez Chinchón的实现。唯一的区别是拾音器是基于R的,而Sánchez Chinchón通过rcpp包在C++中定义了他的功能。

 

# n is set to 1M
# a, b, c and d are the parameters of the equations
pickover <- function(n=10000000,a,b,c,d){
  x <- vector("numeric", n)
  y <- vector("numeric", n)
  x[1] <- 0
  y[1] <- 0
  for(i in 2:n) {
    x[i] <- sin(a * y[i-1]) + c * cos(a * x[i-1])
    y[i] <- sin(b * x[i-1]) + d * cos(b * y[i-1])
  }
  df <- data.frame(x = x, y = y)
}

 


References

Fay, Temple H. 1989. “The Butterfly Curve.” Journal Article. The American Mathematical Monthly 96 (5): 442–43.

ProE曲线方程式集合(图文共96式) 目录 第1页:1碟形弹簧、2葉形线、3螺旋线(Helical curve)、4蝴蝶曲线和5渐开线; 第2页:6螺旋线、7对数曲线、8球面螺旋线、9双弧外摆线和10星行线; 第3页:11心脏线、12圆内螺旋线、13正弦曲线、14太阳线和15费马曲线(有点像螺纹线); 第4页:16Talbot 曲线、17-4叶线、18Rhodonea 曲线 、19抛物线和20螺旋线; 第5页:21三叶线、22外摆线、23Lissajous 曲线、24长短幅圆内旋轮线和25长短幅圆外旋轮线; 第6页:26三尖瓣线、27概率曲线、28箕舌线、29阿基米德螺线和30对数螺线; 7页:31蔓叶线、32tan曲线、33双曲余弦、34双曲正弦和35双曲正切; 第8页:36一峰三驻点曲线、37八字曲线、38螺旋曲线、39圆和40封闭球形环绕曲线; 第9页:41柱坐标螺旋曲线、42蛇形曲线、43-8字形曲线、44椭圆曲线和45梅花曲线; 第10页:46花曲线、47空间感更强的花曲线、48螺旋上升的椭圆线、49螺旋花曲线和50鼓形线; 第11页:51长命锁曲线、52簪形线、53螺旋上升曲线、54蘑菇曲线和55-8字曲线; 第12页:56梅花曲线、57桃形曲线、58碟形弹簧、59环形二次曲线和60蝶线; 第13页:61正弦周弹簧、62环形螺旋线、63内接弹簧、64多变内接式弹簧和65柱面正弦波线; 第14页:66ufo(漩涡线)手把曲线、67篮子、68圆柱齿轮齿廓的渐开线方程和69对数螺旋曲线; 第15页:70罩形线、71向日葵线、72太阳线、73塔形螺旋线和74花瓣线; 第16页:75双元宝线、76阿基米德螺线的变形、77渐开线方程、78双鱼曲线和79蝴蝶结曲线; 第17页:80“两相望”曲线、81小蜜蜂、82弯月、83热带鱼和84燕尾剪; 第18页:85天蚕丝、86心电图、87变化后的星形线、88小白兔和89家好; 第19页:90蛇形线、91五环、92蜘蛛网、93次声波和94十字渐开线; 第20页:95内五环和96蜗轨线;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值