Three 圆柱坐标(Cylindrical)和 视锥体(Frustum)

news/2024/7/22 4:52:20 标签: 前端, javascript, 开发语言

圆柱坐标(Cylindrical)

圆柱坐标:一个点的cylindrical coordinates。英语:cylindrical coordinate system)是一种三维坐标系统。它是二维极坐标系往 z-轴的延伸。添加的第三个坐标 𝑧 专门用来表示 P 点离 xy-平面的高低。按照国际标准化组织建立的约定 (ISO 31-11) ,径向距离、方位角、高度,分别标记为 (𝜌 , 𝜙, 𝑧)。

一般使用(radius,theta,height)来表示点位坐标,三个值可以根据实际使用情况做互换

平面直角坐标系,一般以 (x,y) 两个数值来表示点位坐标
极坐标系,一般以(radius,theta),半径和旋转角度来表示点位坐标

极坐标系和平面直角坐标系可以互相转换:

	//平面直角坐标系转极坐标系
	let radius = Math.sqrt( x * x + y * y );
	let theta = Math.atan( y / x );

	//极坐标系转平面直角坐标系
	let x = radius * Math.cos(theta);
	let y = radius * Math.sin(theta);

构造器(Constructor)

Cylindrical( radius : Float, theta : Float, y : Float )

radius - 从原点到x-z平面上一点的距离 默认值为 1.0.
theta - 在x-z平面内的逆时针角度,以z轴正方向的计算弧度。默认值为0。
y - x-z平面以上的高度 默认值为 0.

属性(Properties)

# .radius : Float

radius - 从原点到x-z平面上一点的距离 默认值为 1.0.

# .theta : Float

theta - 在x-z平面内的逆时针角度,以z轴正方向的计算弧度。默认值为0。

# .y : Float

y - x-z平面以上的高度 默认值为 0.

Methods

# .clone () : Cylindrical

返回一个与当前拥有相同 radius, theta 和 y 属性的圆柱坐标。

# .copy ( other : Cylindrical ) : Cylindrical

将传入的圆柱坐标对象的 radius, theta 和 y 属性赋给当前对象。

# .set ( radius : Float, theta : Float, y : Float ) : Cylindrical

设置该对象的 radius, theta 和 y 属性。

# .setFromVector3 ( vec3 : Vector3 ) : Cylindrical

从 Vector3 中取x,y,z,并调用setFromCartesianCoords来设置圆柱坐标的 radius、theta 和 y 的属性值。

# .setFromCartesianCoords ( x : Float, y : Float, z : Float ) : Cylindrical

使用笛卡尔坐标来设置该圆柱坐标中 radius, theta 以及 y 的属性值。

视锥体(Frustum)

Frustums 用于确定相机视野内的东西。 它有助于加速渲染过程——位于摄像机视锥体外的物体可以安全地排除在渲染之外。

该类主要用于渲染器内部计算 camera 或 shadowCamera的视锥体。

构造器(Constructor)

Frustum(p0 : Plane, p1 : Plane, p2 : Plane, p3 : Plane, p4 : Plane, p5 : Plane)

p0 - (可选参数) Plane.
p1 - (可选参数) Plane.
p2 - (可选参数) Plane.
p3 - (可选参数) Plane.
p4 - (可选参数) Plane.
p5 - (可选参数) Plane.

使用6个面来构建一个视锥体。

属性(Properties)

# .planes : Array

包含6个平面 planes 的数组。

方法(Methods)

# .clone () : Frustum

返回一个与当前对象有相同参数的视锥体。

# .containsPoint ( point : Vector3 ) : Boolean

point - Vector3 to test.

检测该点 point 是否在视锥体内。

# .copy ( frustum : Frustum ) : Frustum

frustum - 用于拷贝的视锥体。

将传入 frustum 的属性拷贝到当前对象。

# .intersectsBox ( box : Box3 ) : Boolean

box - Box3 用于检测是否要交的包围盒。

返回 true 如果该 box 与视锥体相交。

# .intersectsObject ( object : Object3D ) : Boolean

检测 object 的包围球 bounding sphere 是否与视锥体相交。

注意:该对象必须有一个 Geometry 或 BufferGeometry ,因为这样才能计算出包围球。

# .intersectsSphere ( sphere : Sphere ) : Boolean

sphere - Sphere 用于检查是否相交。

返回true 如果球sphere与视锥体相交。

# .intersectsSprite ( sprite : Sprite ) : Boolean

检查精灵sprite是否与截锥体相交。

# .set ( p0 : Plane, p1 : Plane, p2 : Plane, p3 : Plane, p4 : Plane, p5 : Plane ) : Frustum

使用传入的平面设置当前视锥体。没有隐式的顺序。

# .setFromMatrix ( matrix : Matrix4 ) : Frustum

matrix - Matrix4 用于设置 planes

WebGLRenderer 使用 Camera的投影矩阵(projectionMatrix ) 和相机世界变换矩阵的逆矩阵 matrixWorldInverse 来设置视锥体。


http://www.niftyadmin.cn/n/5545566.html

相关文章

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 7月9日,星期二

每天一分钟,知晓天下事! 2024年7月9日 星期二 农历六月初四 1、 最高检:对小摊小贩、小微企业处以高额罚款不符合法律精神。 2、 公安部:全国机动车保有量达4.4亿辆,驾驶人达5.32亿人。 3、 科技部:严禁将…

企业微信hook接口协议,移除群成员通知

移除群成员通知 返回示例 {"flag": 0, "receiver": 0, "sender_name": "", "is_room": 1, "server_id": 15318083, "send_time": 1687688952, "sender": 1688855749266556, "referid&…

从数字化营销与运营视角:看流量效果的数据分析

基于数据打通的“全链路”营销是当下的“时髦”,应用它的前提是什么?深度营销和运营的关键数据如何获得?如何利用数据进行更精准的营销投放?如何利用数据优化投放的效果?如何促进消费者的转化,以及激活留存…

【CSS01】CSS概述,使用样式的必要性,CSS语法及选择器

文章目录 一、什么是样式二、使用样式的必要性三、使用样式的几种方式四、CSS基本语法:五、CSS的注释六、CSS选择器——重点相关单词 一、什么是样式 概念: Cascade [kˈskeɪd] Style Sheet [ʃiːt] 级联样式单/表,层叠样式表 CSS有化腐…

mysql在linux系统下重置root密码

mysql在linux系统下重置root密码 登录服务器时候mysql密码忘记了,没办法只能重置,找了一圈,把行之有效的方法介绍在这里。 错误展示: 我还以为yes就可以了呢,这是不行的意思。 关掉mysql服务 sudo systemctl stop …

大语言模型系列-Transformer介绍

大语言模型系列:Transformer介绍 引言 在自然语言处理(NLP)领域,Transformer模型已经成为了许多任务的标准方法。自从Vaswani等人在2017年提出Transformer以来,它已经彻底改变了NLP模型的设计。本文将介绍Transforme…

一款能在1060显卡上都能实现超分辨率的GAN模型——AuraSR

基于 GAN 的超级分辨率,用于提升生成图像的分辨率,是 GigaGAN 论文的变体,用于图像条件提升。Torch 实现基于非官方的 lucidrains/gigagan-pytorch 资源库。 下载 https://huggingface.co/fal/AuraSR github https://github.com/fal-ai/aura…

华为快游戏研发负责人Leo:快游戏新生态

6月30日,LayaAir迎来了八周岁生日。蓝亚盒子(Layabox)邀请到了抖音集团、腾讯、阿里巴巴、华为、vivo、小米、MiniGame、Amazon、Ton基金会、CrazyGames等国内外知名游戏平台,以及掌趣科技、四三九九、三七游戏、米娅、火花幻境、…