Üç.js'de üç koordinat belirterek bir spline çizebilirim: başlangıç, orta ve son. Bu şekilde, eğri 'start' koordinatlarından başlar, ortalığa kadar yükselir ve 'son' koordinatlarına düşer. Bu, jsbin için aynıdır. Bununla birlikte, şimdi sadece spline'ın sadece yarısını, yani 'orta' dan 'son' kısmına kadar olan kısmı çizmek istiyorum.3.js'de yalnızca spline'ın yarısının nasıl çizileceğini gösterir
Ancak, aşağıdaki gibi sadece düşen yarısını almak istiyorum, ancak sahneyi uydurmak istiyorum.
DÜZENLEME: 'sahne uygun' tek düşen kısım isteyen hakkında bahsedilen
<html>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r75/three.js"></script>
<script>
// global variables
var renderer;
var scene;
var camera;
var geometry;
var control;
var count = 0;
var animationTracker;
init();
drawSpline();
function init()
{
// create a scene, that will hold all our elements such as objects, cameras and lights.
scene = new THREE.Scene();
// create a camera, which defines where we're looking at.
camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 0.1, 1000);
// create a render, sets the background color and the size
renderer = new THREE.WebGLRenderer();
renderer.setClearColor(0x000000, 1.0);
renderer.setSize(window.innerWidth, window.innerHeight);
// position and point the camera to the center of the scene
camera.position.x = 0;
camera.position.y = 40;
camera.position.z = 40;
camera.lookAt(scene.position);
// add the output of the renderer to the html element
document.body.appendChild(renderer.domElement);
}
function drawSpline(numPoints)
{
var numPoints = 100;
// var start = new THREE.Vector3(-5, 0, 20);
var start = new THREE.Vector3(-5, 0, 20);
var middle = new THREE.Vector3(0, 35, 0);
var end = new THREE.Vector3(5, 0, -20);
var curveQuad = new THREE.QuadraticBezierCurve3(start, middle, end);
var tube = new THREE.TubeGeometry(curveQuad, numPoints, 0.5, 20, false);
var mesh = new THREE.Mesh(tube, new THREE.MeshNormalMaterial({
opacity: 0.9,
transparent: true
}));
scene.add(mesh);
renderer.render(scene, camera);
}
</script>
</body>
</html>
aşağıdaki kodu ekleme. Demek istediğim, düşen görüntünün, tüm resmin şimdi işgal ettiği kadar yer kaplamasıydı. Aksi takdirde, eğer spline'dan 'mid' sonra sadece köşeleri kırpacak olsaydı, o zaman spline'ın kısmı, aşağıdaki ikinci resimde olduğu gibi (boya kullanılarak kesilir) çok küçük olurdu.
Elimde, jsBin'iniz herhangi bir çıktı üretmiyor. Ayrıca, jsBin'iniz 3 işlevi tanımlar: init, drawLine ve drawSpline, ancak drawLine asla çağrılmaz/çağrılmaz. –
@AndrewWillems, çıktıyı göremediğiniz için üzgünüz. Bir kez daha kontrol ettim ve görebiliyorum. Yukarıdaki kodu yazdınız. Evet, drawLine() gerekli değildir, bunu göz ardı edebilirsiniz. – PepperBoy
Sadece bildiğiniz gibi ... yorumunuzu/yanıtınızı aldıktan sonra kontrol ettim ve jsBin'iniz Firefox'ta çalışmıyor (v45.0.1) ancak Chrome'da çalışır (V49.0.2623.87). –