Babylonjs-tube

提供:Dev Guides
移動先:案内検索

BabylonJS-チューブ

このセクションでは、チューブの作成方法を学びます。

構文

以下は、チューブを作成する構文です。

var tube = BABYLON.Mesh.CreateTube("tube", [V1, V2, ..., Vn], radius, tesselation, radiusFunction, cap, scene, false, BABYLON.Mesh.DEFAULTSIDE);

パラメーター

チューブを作成するには、次のパラメータを考慮してください-

  • 名前-チューブの名前。
  • パス-チューブのパス。
  • 半径-チューブの半径。
  • テセレーション-放射状セグメントの数。
  • RadiusFunction -それは半径値を与える関数です。 たとえば、function(i、distance)\ {}
  • Cap -チューブキャップ。 値はNO_CAP、CAP_START、CAP_END、CAP_ALLです。
  • Scene -チューブを取り付ける必要があるシーン。
  • 更新可能-デフォルトではtrueです。 falseに設定されており、後で更新できます。
  • SideOrientation -デフォルト値はDEFAULTSIDEです。

デモ-チューブ

<!doctype html>
<html>
   <head>
      <meta charset = "utf-8">
      <title>MDN Games: Babylon.js demo - shapes</title>
      <script src = "babylon.js"></script>
      <style>
         html,body,canvas { margin: 0; padding: 0; width: 100%; height: 100%; font-size: 0; }
      </style>
   </head>

   <body>
      <canvas id = "renderCanvas"></canvas>
      <script type = "text/javascript">
         var canvas = document.getElementById("renderCanvas");
         var engine = new BABYLON.Engine(canvas, true);
         var createScene  = function() {
            var scene = new BABYLON.Scene(engine);
            scene.clearColor = new BABYLON.Color3(0, 1, 0);

            var camera = new BABYLON.ArcRotateCamera("Camera", 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), scene);

            var light = new BABYLON.HemisphericLight("hemi", new BABYLON.Vector3(0, 1, 0), scene);

            var curvePoints =function(l, t) {
               var path = [];
               var step = l/t;
               var a = 5;
               for (var i = -l/4; i < l/4; i += step ) {
                  var t = i /Math.PI *4;
                  var x =   Math.sin(t) + i;
                  path.push(new BABYLON.Vector3(x, 0, 0 ));
               }
               return path;
            };

            var curve = curvePoints(10, 50);

            var radiusFunction = function(i, distance) {
               var t = i/Math.PI* 4/6;
               var radius =  Math.sin(t) + i/15;
               return radius;
            };
            var tube = BABYLON.Mesh.CreateTube("tube", curve, 2, 30, radiusFunction, 0, scene, false, BABYLON.Mesh.FRONTSIDE);
            scene.activeCamera.attachControl(canvas);
            return scene;
         };
         var scene = createScene();
         engine.runRenderLoop(function() {
            scene.render();
         });
      </script>
   </body>
</html>

出力

基本要素チューブ