threejs:二维绘图(基础点,线,不规则图形等)

总目录 >> threejs入门进阶到实战(目前已更新入门篇、基础篇和进阶篇)

此处点线面的基础教学比较好:http://www.yanhuangxueyuan.com/Three.js_course/face.html

其实对于threejs来说,只有点,线,以及其他形状.

知识补充:0x0000ff 0x表示16进制,ff为256,中间两个0就是0.此处采用的是RGB制

点的绘制

 var geometry = new THREE.Geometry();//声明一个空几何体对象
    var p1 = new THREE.Vector3(10,0,0);//顶点1坐标
    var p2 = new THREE.Vector3(0,20,0);//顶点2坐标
    var p3 = new THREE.Vector3(15,15,0);//顶点3坐标
    geometry.vertices.push(p1,p2,p3); //顶点坐标添加到geometry对象
    var material=new THREE.PointsMaterial({
   
        color:0x0000ff,
        size:1.0//点对象像素尺寸
    });//材质对象
    var points=new THREE.Points(geometry,material);//点模型对象
    sceneB.add(points);//点对象添加到场景中

在这里插入图片描述会发现这个点并不符合我们的要求,因为实际的点应当是圆的.因为默认形状是像素点.因此我们需要加载适当的形状…(相当于为点加了纹理.)map: sprite,

function drawPoints(){
   
  var sprite = new THREE.TextureLoader().load( 'images/disc.png' );//点的纹理
  var geometry = new THREE.Geometry();//声明一个空几何体对象
    var p1 = new THREE.Vector3(-10,0,0);//顶点1坐标
    var p2 = new THREE.Vector3(0,10
在三维空间中,一条直线可以由两个确定。我们可以使用 `THREE.Line` 来定义一条直线,并将其添加到场景中。 ```javascript // 创建两个 var point1 = new THREE.Vector3(-5, 0, 0); var point2 = new THREE.Vector3(5, 0, 0); // 创建直线 var geometry = new THREE.Geometry(); geometry.vertices.push(point1, point2); var material = new THREE.LineBasicMaterial({ color: 0xff0000 }); var line = new THREE.Line(geometry, material); // 将直线添加到场景中 scene.add(line); ``` 上述代码创建了一条以两个 `-5, 0, 0` 和 `5, 0, 0` 为端的红色直线,并将其添加到场景中。 如果你想让这条直线在场景中保持不变,不会随着相机的移动而移动,可以将其添加到场景的静态物体中。 ```javascript var staticObject = new THREE.Object3D(); staticObject.add(line); scene.add(staticObject); ``` 这样,当相机移动时,这条直线将保持不变。 当然,你也可以在直线上加入一些动画效果,让它动起来。你可以通过设置直线的顶坐标来使其运动。以下是一个简单的例子: ```javascript function animate() { requestAnimationFrame(animate); // 使直线的第二个沿着 y 轴移动 line.geometry.vertices[1].y += 0.1; line.geometry.verticesNeedUpdate = true; renderer.render(scene, camera); } ``` 上述代码中,`animate` 函数每帧调用一次,使直线的第二个沿着 y 轴移动了 `0.1` 的距离。`verticesNeedUpdate` 标记告诉 three.js 更新直线的顶坐标。 希望这些能帮助你入门 three.js 中的直线绘制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值