网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月07日漏签0天
processing吧 关注:7,139贴子:9,816
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 8回复贴,共1页
<<返回processing吧
>0< 加载中...

我的小作品

  • 只看楼主
  • 收藏

  • 回复
  • qof3990
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

float a,i,j,j1,r,r1,r2,r3,k,k1;
int x,angle = 20; // 旋转角度
void setup() {
size(600, 600);
x = width/2;
r3=30;//中间圆的半径
stroke(0);
strokeWeight(1);
noFill();
pushMatrix(); // 保存当前的变换矩阵
translate(x, x); // 移动到画布中心
for (float b=0; b<TWO_PI; b=b+TWO_PI/angle) {
a = 0;//如果注释掉这行,可以只生成一条曲线。
i=1.18;//控制曲线从曲到直的变化速率,越小越曲折。
j = 0;//曲线开始的摆动幅度。越小越大,可以是负数。
j1 = 0.8;//控制曲线的弯折次数,越大弯越少
r2 = 120;//曲线开始的摆动幅度。越大越大。
beginShape();
while (a < x*1.5) {//乘1.5是为了填满方形画布
r = r2/pow(i, j);
j=j+j1;
r1 = random(-r, r);//计算横向摆动
k1=16;//和i的效果一样,越大越直。
k = sq(j)/k1;//利用幂函数让越开始的摆动越密。
a = a + k;//计算纵向缩放
curveVertex(0+r1, a+r3);
}
endShape();
rotate(TWO_PI/angle); // 应用旋转
}
circle(0, 0, r3*2);
}
void draw(){}//没有draw就没法用keypressd
void keyPressed() {
if (key == 's' || key == 'S') {
saveFrame("###.png");//save没法用哈希标记#保存图片
}
}
======================================================
变量名取的不好,只能尽量写注释了。
注释掉a=0这行,可以只画一个曲线。


  • qof3990
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

float a, i, j, j1, j2, j11, j21, r, r1, r2, r3, k, k1;
int x, angle = 20, t1, t2, t3; // 旋转角度
//float startValue = 1.01;
//float endValue = 1.9;
//float duration = 1000; // 持续时间以毫秒为单位
void setup() {
size(600, 600);
x = width/2;
r3=30;//中间圆的半径
stroke(0);
strokeWeight(1);
noFill();
pushMatrix(); // 保存当前的变换矩阵
}
void draw() {
background(200);
randomSeed(0);
translate(x, x); // 移动到画布中心
//完全循环一次是t1,t2,t3的最小公倍数,6442.8秒。要减小循环时间需要找到最小公倍数比较小的三个数
t1=5900;
t2=4200;
t3=5200;
//pingpangvalue设立一个函数,在一二函数间变化,第三是变化的时间
//i=1.18;//i控制曲线从曲到直的变化速率,越小越曲折。
i=pingpangvalue(1.01, 1.9, t1);
j1=0.8;//控制曲线的弯折次数,越大弯越少
j2 = pingpangvalue(0.1, 1.8, t2);
//j2 =0.8;
//r2 = 120;//曲线开始的摆动幅度。越大越大。
r2 = pingpangvalue(10, 800, t3);
k1=16;//和i的效果一样,越大越直。
for (float b=0; b<TWO_PI; b=b+TWO_PI/angle) {
a = 0;//如果注释掉这行,可以只生成一条曲线。
j11 = 0;//曲线开始的摆动幅度。越小越大,可以是负数。
j21=0;
beginShape();
//while (a < x*1.5) {//乘1.5是为了填满方形画布
//由于k的变化,导致a的数量不一致,会抖动,因此用固定的a1次数代替
for (int a1=0; a1<120; a1++) {
r = r2/pow(i, j11);
j11=j11+j1;
r1 = random(-r, r);//计算横向摆动
j21=j21+j2;
k = sq(j21)/k1;//利用幂函数让越开始的摆动越密。
a = a + k;//计算纵向缩放
curveVertex(0+r1, a+r3);
}
endShape();
rotate(TWO_PI/angle); // 应用旋转
}
}
void keyPressed() {
if (key == 's' || key == 'S') {
saveFrame("###.png");//save没法用哈希标记#保存图片
}
}
float pingpangvalue(float startValue, float endValue, float duration) {
// 创建0到2之间的循环,然后减去1得到-1到1之间的循环
float t = abs((millis() % (duration * 2)) / duration - 1);
// 使用lerp进行线性插值
float value = lerp(startValue, endValue, t);
return value;
}
================================================================
做成了动画,可惜gif不能容纳太长的动画,投了视频,看看一会能不能贴上来。


2026-03-07 13:11:44
广告
不感兴趣
开通SVIP免广告
  • qof3990
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
奇怪,手机端不能看到全部代码。只有电脑上可以。这是为什么?


  • qof3990
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
循环内的代码被吃掉了,奇怪


  • qof3990
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
防吞



  • qof3990
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
离谱,我在贴吧发的视频居然不能转发到贴吧跟帖里,只能转贴。


  • lizhenngc
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
6666


  • lizhenngc
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
666


2026-03-07 13:05:44
广告
不感兴趣
开通SVIP免广告
  • lizhenngc
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
6666


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回processing吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示