p5.js创意绘图(1)动态图形

本文通过p5.js解析了一幅动态图形的创作过程,详细介绍了如何利用正弦函数模拟圆点沿图形中心射线移动,形成类似葫芦旋转的效果。分析了圆点的运动规律,并提供了实现代码。此外,还探讨了形状变化、颜色变化以及线交叉等拓展应用,展示了代码与图形之间的奇妙联系。
摘要由CSDN通过智能技术生成

利用p5.js临摹一幅动态图形。
原图
在这里插入图片描述
分析
看起来像是两个葫芦在转圈,其实每个圆点并没有旋转,只是在以图形中心为原点的射线上来回移动。长瘦葫芦上的圆点移动的周期是短胖葫芦上的圆点移动的周期的两倍,且长瘦葫芦上的圆点的初相位与短胖葫芦上的圆点的初相位相差PI。在这里插入图片描述
因此其实就是每个圆点与图形中心距离按正弦函数随时间发生变化,且每个圆点的初相位与其极坐标下(以图形中心为原点)的角度有关。
(△t:时间变量;△θ,:角度变量;max:与图形中心最大距离;min:与图形中心最小距离)
短胖葫芦上的圆点:r1=sin(△t+3/2.0×PI+△θ×2)×(max1-min1)+min1;
长瘦葫芦上的圆点:r2=sin(△t+1/2.0×PI+△θ×2)×(max2-min2)+min2;
(因为每圈圆点拼成的图形(葫芦)有两个头,所以△θ要乘2。)
再利用极坐标与直角坐标的关系:x=rcosθ,y=rsinθ,可计算出每个圆点的直角坐标。
画图
由上述分析可得代码:
先设全局变量rt作为时间变量

var rt=0

再在draw()函数内

    dt=0;
    for(i=1;i<=num;i++)//num为一圈上圆点个数
    {
   
	  	r1=sin(rt+3/2.0*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值