手册
- 起步
- 进阶
- 构建工具
参考
- 动画
- 动画 / 轨道
- 音频
- 摄像机
- 常量
- 核心
- 核心 / BufferAttributes
- 附件
- 附件 / 核心
- 附件 / 曲线
- 附件 / 物体
- 几何体
- 立方缓冲几何体(BoxGeometry)
- 圆形缓冲几何体(CircleGeometry)
- 圆锥缓冲几何体(ConeGeometry)
- 圆柱缓冲几何体(CylinderGeometry)
- 十二面缓冲几何体(DodecahedronGeometry)
- 边缘几何体(EdgesGeometry)
- 挤压缓冲几何体(ExtrudeGeometry)
- 二十面缓冲几何体(IcosahedronGeometry)
- 车削缓冲几何体(LatheGeometry)
- 八面缓冲几何体(OctahedronGeometry)
- 参数化缓冲几何体(ParametricGeometry)
- 平面缓冲几何体(PlaneGeometry)
- 多面缓冲几何体(PolyhedronGeometry)
- 圆环缓冲几何体(RingGeometry)
- 形状缓冲几何体(ShapeGeometry)
- 球缓冲几何体(SphereGeometry)
- 四面缓冲几何体(TetrahedronGeometry)
- 文本缓冲几何体(TextGeometry)
- 圆环缓冲几何体(TorusGeometry)
- 圆环缓冲扭结几何体(TorusKnotGeometry)
- 管道缓冲几何体(TubeGeometry)
- 网格几何体(WireframeGeometry)
- 辅助对象
- 灯光
- 灯光 / 阴影
- 加载器
- 加载器 / 管理器
- 材质
- 基础线条材质(LineBasicMaterial)
- 虚线材质(LineDashedMaterial)
- 材质(Material)
- 基础网格材质(MeshBasicMaterial)
- 深度网格材质(MeshDepthMaterial)
- MeshDistanceMaterial
- Lambert网格材质(MeshLambertMaterial)
- MeshMatcapMaterial
- 法线网格材质(MeshNormalMaterial)
- Phong网格材质(MeshPhongMaterial)
- 物理网格材质(MeshPhysicalMaterial)
- 标准网格材质(MeshStandardMaterial)
- MeshToonMaterial
- 点材质(PointsMaterial)
- 原始着色器材质(RawShaderMaterial)
- 着色器材质(ShaderMaterial)
- 阴影材质(ShadowMaterial)
- 点精灵材质(SpriteMaterial)
- 数学库
- 数学库 / 插值
- 物体
- 渲染器
- 渲染器 / 着色器
- 渲染器 / WebXR
- 场景
- 纹理贴图
示例
- 动画
- 控制
- 几何体
- 辅助对象
- 灯光
- 加载器
- 物体
- 后期处理
- 导出器
- 数学库
- QuickHull
- 渲染器
- 实用工具
开发者参考
- 差异化支持
- WebGL 渲染器
射线(Ray)
射线由一个原点向一个确定的方向发射。它被Raycaster(光线投射)所使用, 以用于辅助raycasting。 光线投射用于在各个物体之间进行拾取(当鼠标经过三维空间中的物体/对象时进行拾取)。
构造函数
Ray( origin : Vector3, direction : Vector3 )
origin - (可选)Ray(射线)的原点,默认值是一个位于(0, 0, 0)的Vector3。
direction - Vector3 Ray(射线)的方向。该向量必须经过标准化(使用Vector3.normalize),这样才能使方法正常运行。 默认值是一个位于(0, 0, -1)的Vector3。
创建一个新的Ray。
属性
.origin : Vector3
Ray(射线)的原点,默认值是一个位于(0, 0, 0)的Vector3。
.direction : Vector3
Ray(射线)的方向。该向量必须经过标准化(使用Vector3.normalize),这样才能使方法正常运行。 默认值是一个位于(0, 0, -1)的Vector3。
方法
.applyMatrix4 ( matrix4 : Matrix4 ) : Ray
matrix4 - 将被用于这个Ray的Matrix4。
使用传入的Matrix4来变换这个Ray。
.at ( t : Float, target : Vector3 ) : Vector3
t - 使用这一传入的距离,在Ray上确定一个位置。
target — 结果将复制到这一Vector3中。
获得这一Ray上给定距离处的Vector3。
.clone () : Ray
创建一个新的和这个Ray具有相同origin和direction的Ray。
.closestPointToPoint ( point : Vector3, target : Vector3 ) : Vector3
point - 获得距离射线上的点最接近的点。
target — 结果将复制到这一Vector3中。
沿着Ray,获得与所传入Vector3最接近的点。
.copy ( ray : Ray ) : Ray
复制所传入Ray的origin和direction属性到这个Ray上。
.distanceSqToPoint ( point : Vector3 ) : Float
point - the Vector3 to compute a distance to.
获得Ray与传入的Vector3之间最近的平方距离。
.distanceSqToSegment ( v0 : Vector3, v1 : Vector3, optionalPointOnRay : Vector3, optionalPointOnSegment : Vector3 ) : Float
v0 - 线段的起点。
v1 - 线段的终点。
optionalPointOnRay - (可选)若这个值被给定,它将接收在Ray(射线)上距离线段最近的点。
optionalPointOnSegment - (可选)若这个值被给定,它将接收在线段上距离Ray(射线)最近的点。
获取Ray(射线)与线段之间的平方距离。
.distanceToPlane ( plane : Plane ) : Float
plane - 将要获取射线原点到该平面的距离的平面。
获取射线原点(origin)到平面(Plane)之间的距离。若射线(Ray)不与平面(Plane)相交,则将返回null。
.distanceToPoint ( point : Vector3 ) : Float
point - Vector3 将被用于计算到其距离的Vector3。
获得Ray(射线)到所传入point之间最接近的距离。
.equals ( ray : Ray ) : Boolean
ray - 用于比较的Ray。
如果所传入的ray具有和当前Ray相同的origin和direction则返回true。
.intersectBox ( box : Box3, target : Vector3 ) : Vector3
box - 将会与之相交的Box3。
target — 结果将会被复制到这一Vector3中。
将Ray(射线)与一个Box3相交,并返回交点,倘若没有交点将返回null。
.intersectPlane ( plane : Plane, target : Vector3 ) : Vector3
plane - 将会与之相交的Plane。
target — 结果将会被复制到这一Vector3中。
将Ray(射线)与一个Plane相交,并返回交点,倘若没有交点将返回null。
.intersectSphere ( sphere : Sphere, target : Vector3 ) : Vector3
sphere - 将会与之相交的Sphere。
target — 结果将会被复制到这一Vector3中。
将Ray(射线)与一个Sphere(球)相交,并返回交点,倘若没有交点将返回null。
.intersectTriangle ( a : Vector3, b : Vector3, c : Vector3, backfaceCulling : Boolean, target : Vector3 ) : Vector3
a, b, c - 组成三角形的三个Vector3。
backfaceCulling - 是否使用背面剔除。
target — 结果将会被复制到这一Vector3中。
将Ray(射线)与一个三角形相交,并返回交点,倘若没有交点将返回null。
.intersectsBox ( box : Box3 ) : Boolean
box - 将被检查是否与之相交的Box3。
若这一射线与Box3相交,则将返回true。
.intersectsPlane ( plane : Plane ) : Boolean
plane - 将被检查是否与之相交的Plane。
若这一射线与Plane相交,则将返回true。
.intersectsSphere ( sphere : Sphere ) : Boolean
sphere - 将被检查是否与之相交的Sphere。
若这一射线与Sphere相交,则将返回true。
.lookAt ( v : Vector3 ) : Ray
v - 将要“直视”的Vector3
调整光线的方向到世界坐标中该向量所指代的点。
.recast ( t : Float ) : Ray
t - 沿着Ray进行插值的距离。
将Ray(射线)的原点沿着其方向移动给定的距离。
.set ( origin : Vector3, direction : Vector3 ) : Ray
origin - Ray(射线)的origin(原点)。
origin - Ray(射线)的direction(方向)。 该向量必须经过标准化(使用Vector3.normalize),这样才能使方法正常运行。
Sets this ray's origin and direction properties by copying the values from the given objects.
源代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论