【问题标题】:Dynamic Shape Creation(Processing)动态形状创建(处理)
【发布时间】:2015-04-26 04:31:14
【问题描述】:

我正在尝试创建一个创建自定义模式的程序。我有它,如果边 = 3,它是一个三角形 4 = 矩形,并且上面的任何其他东西都有一个公式,所以如果你真的想要,你可以有 25 个边。我正在使用线条、旋转和旋转来种植、转动、绘制重复。

 angleMeasure = (180 * (sides-2) ) /sides;
 println(angleMeasure);
 println(radians(angleMeasure));
 //creating the 5+ shape
 pushMatrix();
 translate(width/2, height/2); //translating the whole shape/while loop

 while(counter < sides){

   line(0,0,170,0);
   translate(170,0);//THIS translate is what makes the lines go in the direction they need too.
   rotate(angleMeasure);

 counter = counter + 1;

这几乎可以正常工作。最后一行和第一行没有连接。建议?也许这是数学问题,但 println 以度为单位揭示了正确的角度测量值。这是它的样子:http://i.stack.imgur.com/TwYMj.png

编辑:将旋转从 rotate(angleMeasure) 更改为 rotate(angleMeasure * -1)。这旋转了整个形状,并清楚地表明第一行的角度是关闭的。见:http://i.stack.imgur.com/Z1KmY.png

【问题讨论】:

  • 你能上传一张4面的图片吗?
  • 您能用rotate(radians(angleMeasure));再试一次吗?处理中的所有角度输入都应以弧度为单位。

标签: math image-processing processing


【解决方案1】:

您实际上需要转过angle=360°/sides。并将这个角度转换为弧度。

因此,对于五角星,您需要angle=72°。您计算的数字是 108,它解释为弧度是 34 整圈加上大约 67° 的角度。这会导致 缺少正确的角度,因此您会获得稍微正确的图片,但内角稍微过宽,从而导致间隙(而不是当角度大于正确角度时的交叉)。

【讨论】:

  • 完美运行。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 2010-11-09
  • 2019-03-01
  • 2012-07-01
相关资源
最近更新 更多