Scripting 示例:Triskelion x5

Scripting 示例:Triskelion x5

这是一个高级功能:请参阅 Scripting 说明

要制作此打印:


使用此脚本:

var CENTER_X = 126, CENTER_Y = 84;
function reverse(arr) {
  var res = [];
  for (var i = 0; i < arr.length; i += 2) {
    res[i] = arr[arr.length - i -2];
    res[i+1] = arr[arr.length - i -1];
  }
  return res;
}

function triskelion(Nsp, Nwh, a) {
  var block1 = [];
  var block2 = [];
  var points = [];
  var a,c,r,t,x,y,x0,y0,t1,t2;
  var dt = 0.04;
  for (var n=0; n < Nsp; n++) {
      r=0;
      t=0;
      x0=CENTER_X+a*Math.cos(2*Math.PI*n/Nsp);
      y0=CENTER_Y+a*Math.sin(2*Math.PI*n/Nsp);
      t1=2*Math.PI*Nwh-Math.PI/Nsp+Math.PI/2;
      t2=t1+2*Math.PI/Nsp;
      c=a*Math.sin(Math.PI/Nsp)*2/Math.PI/(1+4*Nwh);
      savedt=t;
      do {    
        t=t+dt;
        r=c*t;
        x=x0+r*Math.cos(t+Math.PI+2*Math.PI*n/Nsp);
        y=y0+r*Math.sin(t+Math.PI+2*Math.PI*n/Nsp);
        points.push(x);
        points.push(y);
      } while (t < t1);
      block1.push(points);
      points=[];
      t=savedt;
      do {
        t=t+dt;
        r=c*t;
        x=x0+r*Math.cos(t+2*Math.PI*n/Nsp);
        y=y0+r*Math.sin(t+2*Math.PI*n/Nsp);
        points.push(x);
        points.push(y);
        
      } while (t<t2);
      block2.push(points);
      points=[];
  }

  var merged = [];
  merged=merged.concat(block2[0]);
  for (var i = 1; i < Nsp; i++) {
    merged=merged.concat(reverse(block1[i]));
    merged=merged.concat(block2[i]);
  }  
  merged=merged.concat(reverse(block1[0]));

  return merged;
}
foodini.useIngredient(ingredients[0]);
var points = triskelion(5, 2, 40);
foodini.drawPolyline(points);
    • Related Articles

    • 脚本示例:玫瑰

      这是一项高级功能:请参阅 脚本功能详解。 要制作此打印: 使用此脚本: const rose = (centerX, centerY, stepCount, turns, n, d, A) => { var results = []; var k = n / d; var stepSize = turns * 2 * Math.PI / (stepCount); for (var theta = 0; theta < d * turns * 2 * Math.PI; theta += ...
    • 脚本示例:六边形 x6

      这是一项高级功能:请参阅脚本功能详解。 要制作此打印: 使用此脚本: const polygon = (x, y, size, ang, n) => { var result = []; var delta = 2 * Math.PI / n; ang = ang * 2 * Math.PI / 360; for (var i = 0; i <= n; i++) { result.push(x + size * Math.cos(ang + i * delta), y + size * ...
    • 脚本示例:迷你螺旋花 x6

      这是一项高级功能:请参阅 脚本功能详解。 要制作此打印: 使用此脚本: const rose = (centerX, centerY, stepCount, turns, n, d, A) => { var results = []; var k = n / d; var stepSize = turns * 2 * Math.PI / (stepCount); for (var theta = 0; theta < d * turns * 2 * Math.PI; theta += ...
    • 轮廓选项(编辑图像功能)

      您可以在编辑图像中找到这些选项。 如果您有一张填充图像,但只想打印轮廓,您可以在多个选项中进行选择。 (查看优酷视频 / See this video in youku) 示例 1:雪人 - 每个打印件有两层,使用 1.5 喷嘴打印: 示例 2:甜甜圈 - 每个形状有 2 层,使用 1.5 喷嘴打印: 示例 3:圆形 - 每个形状为一层,使用 4.0 喷嘴打印: 另请参阅同心设置说明。 查看其他编辑图像功能。
    • 脚本功能详解

      您可以编写JavaScript语句来告诉Foodini打印什么,从而实现精确控制。许多学校喜欢这个功能,将其作为教孩子们编程的有趣方式。 不懂JavaScript?别担心!这是一项为有需要的用户提供的高级功能;使用Foodini并不需要它。 从新建形状选项中选择脚本。您将看到一个可以输入JavaScript语句的框。例如: 脚本将以此图标显示您的餐盘: 调整图标大小或移动它都没有关系;脚本语句决定了打印位置和相关变量。 请注意,您可以在餐盘上将脚本与其他形状一起打印。 ...