Three.js 圆弧轨迹线 ArcCurve

发布于 2021-08-06 13:08:04 字数 1284 浏览 1678 评论 0

下面代码通过圆弧 ArcCurve 类创建一个圆弧对象,本质上就是生成一系列沿着圆周分布的顶点坐标,然后通过曲线的方法 .getPoints() 从圆弧线均匀获得沿着圆周曲线分布的顶点坐标,获得坐标后,赋值给几何体 Geometry 对象的顶点位置属性 .vertices

.getPoints() 方法的介绍参考圆弧 ArcCurve 的基类 Curve

var r = 400;// 圆弧线半径
// 圆弧曲线APITHREE.ArcCurve
var arc = new THREE.ArcCurve(0, 0, r, 0, 2 * Math.PI, true); // 圆心  半径  起始角度
// 参数50表示曲线分割成几部分
//返回一个vector2对象作为元素组成的数组,如果是3D样条曲面返回的元素是三维向量vector3
var points = arc.getPoints(50);
console.log('points', points);//控制台查看返回的顶点
var geometry = new THREE.Geometry();
// 设置几何体.vertices属性,插入顶点位置数据
points.forEach(function(v){
  geometry.vertices.push(new THREE.Vector3(v.x,v.y,0));
})
var material = new THREE.LineBasicMaterial({
  color: 0x222222
});
// LineLoop和Line不同,起始点闭合
var line = new THREE.LineLoop(geometry, material);
// var line = new THREE.Line(geometry, material);//起始点不闭合
line.rotateX(Math.PI / 2);//可以旋转圆弧线
scene.add(line);

也可以通过几何体 .setFromPoints() 方法将二维向量 Vector2 转化为三维向量 Vector3 赋值给几何体顶点属性 .vertices

// setFromPoints方法的本质:遍历points把vector2转变化vector3
geometry.setFromPoints(points);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

清晨说晚安

我之所以活到现在的全部意义,是为了此刻能对你说,我爱你,我会在你身后永远守护你。

0 文章
0 评论
21959 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文