0
我創建了一個球體,並且正在接收兩個向量。我只需要在球體表面繪製一條線來連接點。在three.js中繪製曲線從vector3到vector3在SphereGeometry的表面上
我覺得這個問題與大圈密切相關,但我不知道如何去執行它。 https://en.wikipedia.org/wiki/Great-circle_distance
我注意到,如果xStart + xEnd> 0,那麼xOffset是正數(y和z相同)。這使曲線彎曲到全球短路。我的問題是曲線不坐在地球上,並且弧的高度根據兩點而改變。我意識到偏移不能只是線性的,但我不知道該怎麼做。
任何幫助將不勝感激。
var sphere = new THREE.SphereGeometry(200, 100, 100);
//Skipping unrelated code and to include creating sphere mesh and adding it to the scene
var curve = new THREE.QuadraticBezierCurve3(
\t new THREE.Vector3(xStart, yStart, zStart),
new THREE.Vector3((xStart+xEnd)/2 + xOffset, (yStart+yEnd)/2 + yOffset, (zStart+zEnd)/2 + zOffset), //Midpoint with offset
\t new THREE.Vector3(xEnd, yEnd, zEnd)
);
var geometry = new THREE.Geometry();
geometry.vertices = curve.getPoints(50);
var line = new THREE.Line(geometry, materialLine);
globe.scene.add(line);
提示,簡潔,包含代碼,對代碼的評論,圖片包含,交互式示例,並且我能夠在5分鐘內理解並實施它...即使您重新創建了一些您像老闆一樣解釋它的東西 – Neo
歡迎)有趣的是找到你的問題的解決方案。 – prisoner849