求教一个问题,如何能让它转起来???
processing吧
全部回复
仅看楼主
level 7
暖冰WI 楼主
我的程序是这么写的,在这个基础上是否有方法让他转?或者有更简便的方法实现呢?
void setup(){
size(600,600);
}
void draw(){
fill(0,191,255);
arc(300,300,600,600,radians(0),radians(120));
fill(127,255,0);
arc(300,300,600,600,radians(120),radians(240));
fill(255,69,0);
arc(300,300,600,600,radians(240),radians(360));
}
2014年09月11日 13点09分 1
level 2
我是用图片来实现的
PImage pic;
void setup(){
pic=loadImage("22.png");
size(pic.width,pic.height);
frameRate(10);
imageMode(CENTER);
}
void draw(){
background(255);
translate(width/2,height/2); //图片位置
rotate(radians(frameCount*12)-HALF_PI);//实现转圈
image(pic,0,0);//圆大小
// saveFrame("pic/###.jpg");
}
2014年09月12日 03点09分 2
那随便请教一下processing引用图片具体操作
2014年09月12日 04点09分
图片引用看明白了,但要是processing上做一个这样的图片,可以导出这样一个圆形的图呢
2014年09月12日 04点09分
saveFrame
2014年09月14日 07点09分
回复 非常账号 :嗯,谢了。明白了
2014年09月14日 08点09分
level 2
引入变量不就可以了嘛
2014年09月12日 04点09分 3
自己试了引入变量,但达不到效果,可能变量设的不好
2014年09月12日 04点09分
level 6
用个变量改radians的值呗
2014年09月13日 16点09分 4
嗯,也是这么想的,但当时没做好。现在好了,可有些地方不大清楚,下边的变量 i ,改变他的值,效果就大不同,可不知道起了什么作用,是通过什么改变的。
2014年09月14日 02点09分
level 7
暖冰WI 楼主
@anaesthesia_vp
int i;
int r=0;
void setup(){
size(700,700);
frameRate(60);
smooth();
}
void draw(){
background(255);
for(i=0;i<1;i++){
fill(0,191,255);
arc(350,350,600,600,radians(1+r),radians(121+r));
fill(255,69,0);
arc(350,350,600,600,radians(121+r),radians(241+r));
fill(0,255,0);
arc(350,350,600,600,radians(241+r),radians(361+r));
r+=10;
}
}
2014年09月14日 02点09分 8
你这个写的有问题,虽说俺对processing不熟,一会帮你改改
2014年09月14日 02点09分
回复 anaesthesia_vp :好,先谢啦
2014年09月14日 02点09分
level 6
int i;
void setup(){
size(700,700);
frameRate(60);
smooth();
}
void draw(){
background(255);
for(i=0;i<359;i++){
fill(0,191,255);
arc(350,350,600,600,radians(i),radians(120+i));
fill(255,69,0);
arc(350,350,600,600,radians(120+i),radians(240+i));
fill(0,255,0);
arc(350,350,600,600,radians(240+i),radians(360+i));
}
}
2014年09月14日 04点09分 9
你这样试试看,我估计会转的太快,减速即可
2014年09月14日 04点09分
回复 anaesthesia_vp :突然发现,在processing中,一个简单的循环不用for语句,直接在后边写 i++ 就行。
2014年09月14日 07点09分
回复 暖冰WI :对啊,我晚上想了想,发现要跑到draw函数末尾才会刷新屏幕,除非用loop啥的
2014年09月14日 13点09分
level 6
我跑了一下我写的,不知道为啥不行,估计是刷新太快,俺得查查processing有没有像Arduino里delay这样的函数。。
2014年09月14日 04点09分 10
level 6
俺换了个思路:
void setup(){
size(700,700);
frameRate(60);
background(255);
}
void draw(){
float i = millis()/10.00;
fill(0,191,255);
arc(350,350,600,600,radians(i),radians(120+i));
fill(255,69,0);
arc(350,350,600,600,radians(120+i),radians(240+i));
fill(0,255,0);
arc(350,350,600,600,radians(240+i),radians(360+i));
}
这个应该就行了
2014年09月14日 05点09分 11
level 7
暖冰WI 楼主
哈,有发现一个方法,感觉还不错,可以通过改变(0,0)坐标来实现[胜利]
float i;
void setup(){
size(700,700);
frameRate(60);
//translate(700,700);
smooth();
}
void draw(){
translate(350,350);
background(255);
rotate(i);
fill(0,191,255);
arc(0,0,600,600,radians(0),radians(120));
fill(255,69,0);
arc(0,0,600,600,radians(120),radians(240));
fill(0,255,0);
arc(0,0,600,600,radians(240),radians(360));
i+=0.1;
}
2014年09月14日 07点09分 12
level 4
在void draw中,先将坐标原点转移到屏幕中央(translate方法),在加一句rotate()方法,下面画出图形就可以了
2014年09月22日 05点09分 13
嗯,当时还没学到。现在用这个方法很容易实现了
2014年09月22日 08点09分
回复 暖冰WI :加油[呵呵]
2014年09月22日 10点09分
回复 文库张文库 :嗯,还请多多指教
2014年09月22日 13点09分
回复 暖冰WI :不,是一起学习
2014年09月22日 13点09分
level 1
大家都好棒
2014年10月20日 16点10分 14
level 1
请问如何让设定绕定点转?
2014年10月23日 13点10分 15
想绕哪点转就用 translate() 函数把坐标原点移到那,再用 rotate() 让其旋转, 新手的话,一步一步学,很快你就会复杂一点的了。。
2014年10月23日 13点10分
level 1
还有如果只是想让背景图片转,其他的不动要怎么办?
2014年10月23日 13点10分 16
这个需要用到 pushMatrix()
2014年10月23日 13点10分
level 13
着急 怎么把processing运行完的图片保存到桌面?
2014年10月23日 13点10分 17
saveFrame();会吧每一帧保存下来,具体可以参看官网上的例子
2014年10月24日 06点10分
1