【发布时间】:2016-01-06 23:14:37
【问题描述】:
我正在尝试使用拉伸弧在 Three.js 中绘制一个复杂的形状,但它们的行为似乎不正常。我不知道我是不是看不懂API,但这不应该创建一个以原点为中心的半径为100的完整挤压圆吗?
var path = new THREE.Path();
path.moveTo(0, 0);
path.arc(0, 0, 100, 0, Math.PI * 2, false);
var shape = path.toShapes(false, false);
var extrudeSettings = {
amount : 20,
steps : 1
};
var geometry = new THREE.ExtrudeGeometry(shape, extrudeSettings);
var mesh = new THREE.Mesh(geometry, material);
而是绘制一个吃豆人形状:
这是 JSFiddle:
【问题讨论】:
-
作为一种变通方法,请尝试threejs.org/examples/webgl_geometry_shapes.html 中的一种方法。
-
我正在尝试用弧线绘制更复杂的路径,但失败得很惨。如果它不能做这个简单的画圆测试用例,那么它就没有希望在我的复杂路径上正常工作。该页面上的圆圈似乎使用二次路径,这可能对我有用。
-
jsfiddle.net/19f7qssj - 使用二次曲线时路径是闭合的,但它不是一个圆(因为它们不能用二次贝塞尔曲线表示spencermortensen.com/articles/bezier-circle)但可能已经足够好了。
-
WestLangley,请将其发布为答案,以便我接受!我很困惑为什么当前位置是圆弧的一部分,似乎提供给 arc() 的中心点、起始角度、结束角度和方向完全定义了曲线,而当前位置应该无关紧要?
标签: javascript three.js