0

以下に示すコーン ジオメトリとして表す必要がある JSON の 5 つの頂点の大きなグループがあります。

5 つの頂点: {(x,y,z) , (a,b,c), (d,e,f), (g,h,i), (j,k,l) }, {(x1,y1 ,z1) , (a1,b1,c1), (d1,e1,f1), (g1,h1,i1), (j1,k1,l1) }..............

注: これらの座標はキャンバス座標です。

ダイアグラムは次のとおりです。

円錐

これらの頂点値は JSON ファイルから読み取られ、ジオメトリを作成するために必要です。これらの頂点値は、すべてのジオメトリに固有です。

AFAIK、three.js の事前定義されたジオメトリとカスタム ジオメトリを以下のコードのように使用する方法。私の質問は、JSON ファイルから読み取った値を使用してジオメトリを表す方法ですか?

    var cone;
    var geo = new THREE.Geometry();

    var meshMaterial = new new THREE.MeshLambertMaterial( { color: 0xffffff });

    geo.vertices.push( new THREE.Vector3(   0, 0, 0));
    geo.vertices.push( new THREE.Vector3( -0.5, 0.5, 1));
    geo.vertices.push( new THREE.Vector3( 0.5, 0.5, 1));
    geo.vertices.push( new THREE.Vector3( -0.5, -0.5, 1));
    geo.vertices.push(new THREE.Vector3( 0.5,-0.5, 1));

   geo.faces.push( new THREE.Face3(0,1,2));
   geo.faces.push( new THREE.Face3(4,3,0));
   geo.faces.push( new THREE.Face3(3,1,0));
   geo.faces.push( new THREE.Face3(0,2,4));
   geo.faces.push( new THREE.Face3(2,1,4));
   geo.faces.push( new THREE.Face3(1,3,4));

   geo.computeFaceNormals();
   cone = new THREE.Mesh(geo, meshMaterial);
   cone.doubleSided = true;
   cone.overdraw = true;

   //And finally we need (x,y,z) to set the position of this geometry to display on the canvas
   cone.position.set(x,y,z);

他のファイルから読み取った値を使用してジオメトリを作成する方法をたくさん試しましたが、何も見つからなかったため、この質問を投稿しました。

PS: これらの値の中で {(x,y,z) , (a,b,c), (d,e,f), (g,h,i), (j,k,l) }, (x, yz) は、円錐を表すときのキャンバス上の円錐の先端の位置である必要があります。

4

1 に答える 1

1

81.214.75.32:8181/adminをチェックしてください(オートロードシーンを数秒間待ちます)ページソースを参照し、上部に含まれているFileManager.jsを開きます。「importScene」関数を調べます。これは、ファイルからジオメトリデータをロードし、頂点、法線、テクスチャ情報からモデルを作成するのに役立ちます。

于 2013-01-10T08:53:55.600 に答える