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 * ...
    • スクリプトの例: 六角形 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 * ...
    • スクリプトの例: ミニ渦巻き花 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 * ...
    • スクリプトの説明

      JavaScriptの文を書いてFoodiniに何を印刷するか指示し、精密な制御が可能です。多くの学校が、子どもたちにプログラミングを楽しく教える方法としてこの機能を気に入っています。 JavaScriptを知らなくても大丈夫です!これは希望する方のための上級者向け機能であり、Foodiniの使用に必須ではありません。 新しいシェイプオプションからスクリプトを選択します。JavaScriptの文を入力できるボックスが表示されます。例: スクリプトはディッシュを次のアイコンで表示します: ...
    • オンスクリーン図形/クリエーションの順序変更:前面へ移動と背面へ移動

      Foodini Creatorでは、他のソフトウェアプログラムで図形や画像を操作するのと同様に、ディッシュを構成する図形/クリエーションの順序を変更できます。図形/クリエーションを選択して、前面に移動( )することも、背面に移動( )することもできます。これは図形ツールバーに表示されています。 この操作は、画面上に表示される図形の順序を変更しますが、自動的に位置は変更されないことに注意してください。 ...