Üç.js ile oynuyordum.Çeviri uygulandıktan sonra köşe konumunu nasıl alabilirim, üç.js kullanarak geometriye döndürün ve ölçeklendirin?
Amacım, sahnede bir eğri oluşturmak ve ona bir dönüşüm uygulamaktır. fonksiyon hattını oluşturmaktır geçerli:
var random_degree = Math.round(Math.rand() * 180);
var tmp = [
new THREE.Vector3(-5, 0, 0),
new THREE.Vector3(0, 0, 5),
new THREE.Vector3(5, 0, 0),
new THREE.Vector3(0, 0, -5),
];
var canvasW = window.innerWidth;
var canvasH = window.innerHeight;
// so the initial curve is a circle on x-z plain.
function get_line_geo() {
var angle = (random_degree + 1 * 0.25) % 360 * (Math.PI/180);
var tx = Math.cos(angle) * canvasW * 0.25;
angle = (random_degree + 1 * 0.3) % 360 * (Math.PI/180);
var ty = Math.sin(angle) * canvasH * 0.25;
var curve = new THREE.CatmullRomCurve3(tmp);
curve.closed = true;
var geometry = new THREE.Geometry();
geometry.vertices = curve.getPoints(300);
console.log(geometry.vertices[0].x + ' ' +geometry.vertices[0].y + ' ' +geometry.vertices[0].z);
var material = new THREE.LineBasicMaterial();
var curveObject = new THREE.Line(geometry, material);
curveObject.translateX((canvasW - margin * 2)/2 + tx);
curveObject.translateY((canvasH - margin * 2)/2 + ty);
curveObject.translateZ((canvasH - margin * 2)/2 + ty);
curveObject.rotation.x = ((random_degree + 1 * 0.25) % 360) * Math.PI/180;
curveObject.rotation.y = ((random_degree + 1 * 0.25) % 360) * Math.PI/180;
curveObject.rotation.z = ((random_degree + 1 * 0.25) % 360) * Math.PI/180;
curveObject.scale.x = 10;
curveObject.scale.y = 10;
curveObject.scale.z = 10;
console.log(curveObject.geometry.vertices[0].x + ' ' +curveObject.geometry.vertices[0].y + ' ' +curveObject.geometry.vertices[0].z);
return curveObject;
}
Ben
console.log()
kullanarak köşe pozisyonları kontrol, bunlar geometri bağlamında değişmedi. Yani bu köşeler için yeni pozisyonları hesaplayabileceğim herhangi bir yöntem var mı?
Büyük:
değiştirdikten sonra
position
, nesneninrotation
veyascale
özellikleri, sen Sonra bunuçağırmanız gerekir , bana çok yardımcı oldu. Tek şey, üç.js'nin en son sürümünde, verctor3 için applyMatrix iki yönteme güncellendi: 1. applyMatrix3 ve 2 applyMatrix4. Ve sanırım bu r75. Lütfen http://threejs.org/docs/index.html#Reference/Math/Vector3 adresini ziyaret edin. Her neyse bir cevap olarak işaretleyeceğim. Ve test ettiğim şeyden, applyMatrix4 istediğim şey. –
Oops. Tipo. Düzeltildi. Teşekkürler. – WestLangley