优美的曲线-译

news/2024/12/21 4:21:10/

来源: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_incb0[i]=b0[i-1]+b_inct0[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] <- 0y[1] <- 0for(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.


http://www.ppmy.cn/news/739124.html

相关文章

贝塞尔曲线介绍及其应用

贝塞尔样条是一个允许用户控制节点处斜率的样条&#xff0c;是一种特殊的三次样条。   皮埃尔贝塞尔在其为雷诺&#xff08;Renault&#xff09;汽车公司工作时有了这个创意。Paul de Casteljau在与雷诺竞争关系的汽车公司雪铁龙Citroen公司工作时也独立有了这个想法。这在两…

必贝特科创板IPO过会:预计2025年前实现商业化,钱长庚为实控人

2023年1月10日&#xff0c;上海证券交易所披露的信息显示&#xff0c;广州必贝特医药股份有限公司&#xff08;下称“必贝特”&#xff09;获得上市委会议审核通过。据贝多财经了解&#xff0c;必贝特于2022年6月29日在科创板递交上市申请。 公开信息显示&#xff0c;必贝特是一…

优尼贝特国际教育怎么样,优尼贝特少儿英语好不好啊?

有在优尼贝特国际教育给孩子报过英语课程的吗&#xff1f;效果怎么样啊&#xff1f;孩子刚满8岁&#xff0c;下半年就要升小学二年级了&#xff0c;看着身边的朋友都开始给自己孩子找英语培训班&#xff0c;着手英语启蒙的事情了&#xff0c;我也想着给孩子报个培训班补习一下英…

贝塞尔曲线简单介绍

什么是贝塞尔曲线&#xff1f; Bzier curve(贝塞尔曲线) 是应用于二维图形应用程序的数学曲线。 曲线定义&#xff1a;起始点、终止点&#xff08;也称锚点&#xff09;、控制点。通过调整控制点&#xff0c;贝塞尔曲线的形状会发生变化。 1962年&#xff0c;法国数学家Pierre…

贝特朗(Bertrand)悖论

几何概型 抛硬币、掷骰子之类游戏中涉及的概率&#xff0c;是离散的&#xff0c;抛丢结果的数目有限&#xff08;2或6&#xff09;。如果硬币或骰子是对称的&#xff0c;每个基本结果发生的概率相等。这种随机事件被称为古典概型。 数学家们将古典概型推广到某些几何问题中&a…

贝特兰模型

Bertrand模型 该模型是法国经济学家Joseph Louis Franois Bertrand (1822-1900)提出的。与Cournot&#xff08;古诺&#xff09;模型相比&#xff0c;在Cournot模型里参加博弈的双方以产量作为决策的变量&#xff0c;而在Bertrand模型中参加该博弈的双方都以价格作为决策变量。…

线程 线程池

大屏展示 10个线程同时查询统计各个表&#xff0c;并行处理&#xff0c; 主线程 把任务投递 给 线程池&#xff0c;线程池中调出一个线程去处理 希望以一种 轻量级的 方式 实现 "i" 线程安全 &#xff1a; compareAndSwap() : 针对某个变量实现 或 -- 确保线程安全 …

牛逼的python库-使用xpinyin库将汉字转换为汉语拼音

xpinyin是一个Python库&#xff0c;用于将中文汉字转换为拼音。它使用简单而高效的方法来执行转换操作。以下示例演示了如何使用xpinyin库&#xff1a; 安装xpinyin库&#xff1a; pip install xpinyin将中文文本转换为拼音&#xff1a; from xpinyin import Pinyinp Pinyin()…