《Three.js 入门指南》3.1.1

摘要:
半径:环的半径。默认值为1.DOCTYPEhtml˃文档init();functioninit(){varrender=newTHREE.WebGLRenderer();render.setSize;Document.getElementsByTagName[0].appendChild;render.setClearColor;varscene=newTHEE.Scene() ; varaspect=window.innerWidth/window。innerHeight;varcamera=新三个。正交照相机;摄像头位置。设置照相机查看;场景添加vartorus=newTHREE.Meshscene。添加渲染器。render;}关于圆环结半径参数的一些演示说明:圆环的半径。默认值为1。RadialSegments:横截面段的数量。默认值为8.p:该值确定几何体绕其旋转轴旋转的次数。默认值为2。这六个值是我们在绘制圆环结时通常需要设置的参数。radius控制整个图形的大小。对于两个线段,当值较小时,radialSegments值通常用于实现特殊效果。
3.1 基本几何形状

圆环结(TorusKnotGeometry)

构造函数

THREE.TorusKnotGeometry(radius, tube, radialSegments, tubularSegments, p, q, heightScale)

圆环节和圆环很相似,只是多了一些参数。

radius : 圆环的半径,默认值为1。
tube : 管道的半径,默认值为0.4。
tubularSegments : 管道的分段数量,默认值为64。
radialSegments : 横截面分段数量,默认值为8。
p : 这个值决定了几何体将绕着其旋转对称轴旋转多少次,默认值是2。
q : 这个值决定了几何体将绕着其内部圆环旋转多少次,默认值是3。

一个标准圆环结的示例demo以及效果

</html>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="http://t.zoukankan.com/three.js"></script>
    <script type="text/javascript" src="http://t.zoukankan.com/OrbitControls.js"></script>
    <title>Document</title>
</head>

<body>
    <script>
        init();


        function init() {
            var renderer = new THREE.WebGLRenderer();
            renderer.setSize(800, 600);
            document.getElementsByTagName('body')[0].appendChild(renderer.domElement);
            renderer.setClearColor(0x000000);

            var scene = new THREE.Scene();
            var aspect = window.innerWidth / window.innerHeight;
            var camera = new THREE.OrthographicCamera(-4 * aspect, 4 * aspect, -3 * aspect, 3 * aspect, 1, 10000);
            camera.position.set(50, 50, 500);
            camera.lookAt(new THREE.Vector3(0, 0, 0));
            scene.add(camera);

            var torus = new THREE.Mesh(new THREE.TorusKnotGeometry(3, 0.4, 200, 10, 2, 3),
                new THREE.MeshBasicMaterial({
                    color: 0xff0000,
                    wireframe: true
                })
            )
            scene.add(torus);

            renderer.render(scene, camera);
        }
    </script>
</body>

</html>

  

《Three.js 入门指南》3.1.1第1张

关于圆环结的参数的一些演示说明

radius : 圆环的半径,默认值为1。
tube : 管道的半径,默认值为0.4。
tubularSegments : 管道的分段数量,默认值为64。
radialSegments : 横截面分段数量,默认值为8。
p : 这个值决定了几何体将绕着其旋转对称轴旋转多少次,默认值是2。
q : 这个值决定了几何体将绕着其内部圆环旋转多少次,默认值是3。

这六个值是我们在绘制一个圆环结的时候一般需要设定的参数,radius控制了整个图形的大小。tube设定了圆环的粗细。

对于两个Segments分段切片值,在数值较小的时候,这个radialSegments值,一般被用来实现特殊的效果。例如如果是3,那么就是一个三个面的环带,还可以是四面,n面,也就是截断的横截面的平面形状,而tubelarSegments值,可以实现不一定是圆环。

在数值较大的时候,通常是在控制图形的精细度。 

我们需要说明的是p、q这两个值。

对于p值,我们可以想象水管的收纳方式。

《Three.js 入门指南》3.1.1第2张

对于q值,我们可以想象成把一个儿童塑料弹簧玩具首尾相接:

《Three.js 入门指南》3.1.1第3张

我们借由这种抽象辅助理解:

p : 这个值决定了几何体将绕着其旋转对称轴旋转多少次,默认值是2。
q : 这个值决定了几何体将绕着其内部圆环旋转多少次,默认值是3。

官方文档的demo床:

《Three.js 入门指南》3.1.1第4张

《Three.js 入门指南》3.1.1第5张

《Three.js 入门指南》3.1.1第6张

这两个参数相当复杂,通过不同的搭配组合,奇偶数、比例等多种规律可以构建出无数种神奇的图形。更多的示例,通过该图床可以进行演示创造:

https://threejs.org/docs/index.html#api/zh/geometries/TorusKnotGeometry

免责声明:文章转载自《《Three.js 入门指南》3.1.1》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇最新的Aliyun Maven仓库地址软工作业05下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

《中小学生Python编程入门指南》前言

只是在一次偶然的接触中了解到,其实有很多家长想让小孩学习编程,觉得是未来的一个方向。我不懂未来的方向是怎么分析出来的,但的确身边有很多的朋友都有让自己的小孩学习编程的想法。虽然自己才疏学浅,正好也是万千程序猿中的一个,趁着NCP疫情,在家没事做,就萌生了写本编程指南的想法,可以供大家参考,用作python语言的学习也好。也是我自己对python语言的再学习...

Helm 入门指南

来自: https://www.hi-linux.com/posts/21466.html  官网; https://helm.sh/docs/developing_charts/ Helm 是 Kubernetes 生态系统中的一个软件包管理工具。本文将介绍 Helm 中的相关概念和基本工作原理,并通过一个具体的示例学习如何使用 Helm 打包、分发、安...

weex入门指南--华岭

背景:      由于公司项目需要,需求变化频繁,计划总改不上变化,由于app更新版本周期长,不能很好应对这种变化,正在此前提下热修复和热更新技术也有了发展的空间,不管热修复还是热更新,都是对app内容或者逻辑的变化作出像web网页更新类似的体验。      weex阿里推出的热更新框架,已再内部应用在多款app上如淘宝,天猫和闲鱼等,典型的电商型app非...

掌握VS2010调试 -- 入门指南

Reference from : http://blog.csdn.net/kingzone_2008/article/details/8133048 1 导言 在软件开发周期中,测试和修正缺陷(defect,defect与bug的区别:Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的)的时间远多于写代码的时间。通常,debug是指发现缺陷并改...

UI组件库Kendo UI for Angular入门指南教程

Conversational UI组件弥合了Web 和下一代自然语言应用程序之间的差距。Conversational UI 包提供了Kendo UI聊天组件,该组件允许用户参与与其他用户或聊天机器人的聊天会话。 Conversational UI Package 是Kendo UI for Angular的一部分,这是一个专业级 UI 库,具有 100 多...

Unity3D Shader入门指南(一)

转自:http://unity3d.9tech.cn/news/2013/1202/39031.html 自己使用unity3d也 有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解。虽然说Unity引擎设计的初衷就是 创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法...