私はこの効果を完成させるために多くの方法を試しています。私はマウスダウンイベントの行を描きたいと思いますが、他にも多くの質問がありますが、それまでは、私はintersectObjects()のRayキャスターメソッドを使用して、クリックの位置を取得しますが、私はそのときの方法はありません。three.js mousedownイベントでラインを描く方法
event.preventDefault();
mouse.x = (event.clientX/renderer.domElement.clientWidth) * 2 - 1;
mouse.y = -(event.clientY/renderer.domElement.clientHeight) * 2 + 1;
var raycaster=new THREE.Raycaster();
raycaster.setFromCamera(mouse, camera);
var intersects = raycaster.intersectObjects(objects,true);
console.log(intersects[0].point);//type of intersects[0] is object,one of attribute is point?
昨日、私はいくつかのコードを書いて、私の効果の完全な部分を持っている:ここで は私のコードの一部です。ここでいくつかのコードである:
var clickCount = 0;//initial value
clickCount = clickCount+1;
if(intersects.length>0)
{
switch(clickCount)
{
case 1:
var startPoint=intersects[0].point;//store the first intersect point when the first click
break;
case 2:
var endPoint =intersects[0].point;//store the second intersect point when the second click
break;
}
}
clickCount=1;
var geometry = new THREE.Geometry();
material = new THREE.LineBasicMaterial({color:0xffffff,linewidth:2});
geometry.vertices.push(startPoint);
geometry.vertices.push(endPoint);
line = new THREE.Line(geometry, material);
scene.add(line);
が、これは私はセグメントラインは、全ての光線は、ベクトル(0,0,0)から設定されwanted.thisもの最終的な効果はありません。ここにスクリーンショットがあります:
赤い線は、私が実装したいものです。理由を見つけ出すことができますか?ありがとうございます。
この瞬間、私はあなたが私のためにやったことに非常に感謝しています。私はこの問題に多大な時間をかけて困惑しています。本当にありがとうございます。 –
ようこそ) – prisoner849