作者 主题: 一个关于循环的问题!  (阅读 2971 次)

lbjmn

  • Newbie
  • *
  • 帖子: 7
一个关于循环的问题!
« 于: 八月 01, 2012, 08:34:14 下午 »
关于循环的问题,我是新手,希望得到大家解答啦,见笑啦!
首先,我在processing下画了一个心,
代码如下:
程序代码
size(600,600);
background(255);
smooth();
fill(255,131,195);
noStroke();
beginShape();
vertex(50,100);
bezierVertex(50,30,150,30,150,80);
bezierVertex(150,30,250,30,250,100);
bezierVertex(250,150,180,200,150,200);
bezierVertex(120,200,50,150,50,100);
endShape(CLOSE);
然后我想在这个基础上加上一个循环,让这个心等比例的平铺x和y轴,并有一定的颜色变化,
我就尝试写了一下代码,
程序代码
size(600,600);
background(255);
smooth();
noStroke();
int y=50;
for (int x=50;x<=540;x+=50){
 fill(255,x+11,y+21);
   beginShape();
   vertex(x,2*y);
   bezierVertex(x,y-20,3*x,y-20,3*x,y+30);
   bezierVertex(3*x,y-20,5*x,y-20,5*x,2*y);
   bezierVertex(5*x,3*y,3*x+30,4*y,3*x,4*y);
   bezierVertex(2*x+20,4*y,x,3*y,x,2*y);
   endShape(CLOSE);}
结果发现只平铺x轴的时候心已经变形了,我想知道,我哪里出了错,应该怎么改!谢谢

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: 一个关于循环的问题!
« 回复 #1 于: 八月 01, 2012, 08:56:20 下午 »
因为   bezierVertex(x,y-20,3*x,y-20,3*x,y+30);
其中的3*x 等于多少?你可以心算下,并不是等比例变化的
应该写成bezierVertex(x,y-20,100+x,y-20,100+x,y+30);

lbjmn

  • Newbie
  • *
  • 帖子: 7
Re: 一个关于循环的问题!
« 回复 #2 于: 八月 01, 2012, 08:59:23 下午 »
因为   bezierVertex(x,y-20,3*x,y-20,3*x,y+30);
其中的3*x 等于多少?你可以心算下,并不是等比例变化的
应该写成bezierVertex(x,y-20,100+x,y-20,100+x,y+30);
对噢,x每次都在变化,但是我却把它当成了第一次的变化,谢谢!!!

Tags: