1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
<h1>射线([name])</h1>
<p class="desc">
射线由一个原点向一个确定的方向发射。它被[page:Raycaster](光线投射)所使用,
以用于辅助[link:https://en.wikipedia.org/wiki/Ray_casting raycasting]。
光线投射用于在各个物体之间进行拾取(当鼠标经过三维空间中的物体/对象时进行拾取)。
</p>
<h2>构造函数</h2>
<h3>[name]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
<p>
[page:Vector3 origin] - (可选)[page:Ray](射线)的原点,默认值是一个位于(0, 0, 0)的[page:Vector3]。<br />
[page:Vector3 direction] - [page:Vector3] [page:Ray](射线)的方向。该向量必须经过标准化(使用[page:Vector3.normalize]),这样才能使方法正常运行。
默认值是一个位于(0, 0, -1)的[page:Vector3]。<br /><br />
创建一个新的[name]。
</p>
<h2>属性</h2>
<h3>[property:Vector3 origin]</h3>
<p>[page:Ray](射线)的原点,默认值是一个位于(0, 0, 0)的[page:Vector3]。</p>
<h3>[property:Vector3 direction]</h3>
<p>
[page:Ray](射线)的方向。该向量必须经过标准化(使用[page:Vector3.normalize]),这样才能使方法正常运行。
默认值是一个位于(0, 0, -1)的[page:Vector3]。
</p>
<h2>方法</h2>
<h3>[method:Ray applyMatrix4]( [param:Matrix4 matrix4] )</h3>
<p>
[page:Matrix4 matrix4] - 将被用于这个[page:Ray]的[page:Matrix4]。<br /><br />
使用传入的[page:Matrix4]来变换这个[page:Ray]。
</p>
<h3>[method:Vector3 at]( [param:Float t], [param:Vector3 target] ) </h3>
<p>
[page:Float t] - 使用这一传入的距离,在[page:Ray]上确定一个位置。<br />
[page:Vector3 target] — 结果将复制到这一Vector3中。<br /><br />
获得这一[page:Ray]上给定距离处的[page:Vector3]。
</p>
<h3>[method:Ray clone]()</h3>
<p>
创建一个新的和这个Ray具有相同[page:.origin origin]和[page:.direction direction]的Ray。
</p>
<h3>[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )</h3>
<p>
[page:Vector3 point] - 获得距离射线上的点最接近的点。<br />
[page:Vector3 target] — 结果将复制到这一Vector3中。<br /><br />
沿着[page:Ray],获得与所传入[page:Vector3]最接近的点。
</p>
<h3>[method:Ray copy]( [param:Ray ray] )</h3>
<p>
复制所传入Ray的[page:.origin origin]和[page:.direction direction]属性到这个Ray上。
</p>
<h3>[method:Float distanceSqToPoint]( [param:Vector3 point] )</h3>
<p>
[page:Vector3 point] - the [page:Vector3] to compute a distance to.<br /><br />
获得[page:Ray]与传入的[page:Vector3]之间最近的平方距离。
</p>
<h3>[method:Float distanceSqToSegment]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 optionalPointOnRay], [param:Vector3 optionalPointOnSegment] )</h3>
<p>
[page:Vector3 v0] - 线段的起点。<br />
[page:Vector3 v1] - 线段的终点。<br />
optionalPointOnRay - (可选)若这个值被给定,它将接收在[page:Ray](射线)上距离线段最近的点。
<br />
optionalPointOnSegment - (可选)若这个值被给定,它将接收在线段上距离[page:Ray](射线)最近的点。<br /><br />
获取[page:Ray](射线)与线段之间的平方距离。
</p>
<h3>[method:Float distanceToPlane]( [param:Plane plane] )</h3>
<p>
[page:Plane plane] - 将要获取射线原点到该平面的距离的平面。<br /><br />
获取射线原点([page:.origin origin])到平面([page:Plane])之间的距离。若射线([page:Ray])不与平面([page:Plane])相交,则将返回*null*。
</p>
<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
<p>
[page:Vector3 point] - [page:Vector3] 将被用于计算到其距离的[page:Vector3]。<br /><br />
获得[page:Ray](射线)到所传入[page:Vector3 point]之间最接近的距离。
</p>
<h3>[method:Boolean equals]( [param:Ray ray] )</h3>
<p>
[page:Ray ray] - 用于比较的[page:Ray]。<br /><br />
如果所传入的[page:Ray ray]具有和当前Ray相同的[page:.offset offset]和[page:.direction direction]则返回true。
</p>
<h3>[method:Vector3 intersectBox]( [param:Box3 box], [param:Vector3 target] )</h3>
<p>
[page:Box3 box] - 将会与之相交的[page:Box3]。<br />
[page:Vector3 target] — 结果将会被复制到这一Vector3中。<br /><br />
将[page:Ray](射线)与一个[page:Box3]相交,并返回交点,倘若没有交点将返回*null*。
</p>
<h3>[method:Vector3 intersectPlane]( [param:Plane plane], [param:Vector3 target] )</h3>
<p>
[page:Plane plane] - 将会与之相交的[page:Plane]。<br />
[page:Vector3 target] — 结果将会被复制到这一Vector3中。<br /><br />
将[page:Ray](射线)与一个[page:Plane]相交,并返回交点,倘若没有交点将返回*null*。
</p>
<h3>[method:Vector3 intersectSphere]( [param:Sphere sphere], [param:Vector3 target] )</h3>
<p>
[page:Sphere sphere] - 将会与之相交的[page:Sphere]。<br />
[page:Vector3 target] — 结果将会被复制到这一Vector3中。<br /><br />
将[page:Ray](射线)与一个[page:Sphere](球)相交,并返回交点,倘若没有交点将返回*null*。
</p>
<h3>[method:Vector3 intersectTriangle]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c], [param:Boolean backfaceCulling], [param:Vector3 target] )</h3>
<p>
[page:Vector3 a], [page:Vector3 b], [page:Vector3 c] - 组成三角形的三个[page:Vector3]。<br />
[page:Boolean backfaceCulling] - 是否使用背面剔除。<br />
[page:Vector3 target] — 结果将会被复制到这一Vector3中。<br /><br />
将[page:Ray](射线)与一个三角形相交,并返回交点,倘若没有交点将返回*null*。
</p>
<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
<p>
[page:Box3 box] - 将被检查是否与之相交的[page:Box3]。<br /><br />
若这一射线与[page:Box3]相交,则将返回true。
</p>
<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
<p>
[page:Plane plane] - 将被检查是否与之相交的[page:Plane]。<br /><br />
若这一射线与[page:Plane]相交,则将返回true。
</p>
<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
<p>
[page:Sphere sphere] - 将被检查是否与之相交的[page:Sphere]。<br /><br />
若这一射线与[page:Sphere]相交,则将返回true。
</p>
<h3>[method:Ray lookAt]( [param:Vector3 v] )</h3>
<p>
[page:Vector3 v] - 将要“直视”的[page:Vector3]<br /><br />
调整光线的方向到世界坐标中该向量所指代的点。
</p>
<h3>[method:Ray recast]( [param:Float t] )</h3>
<p>
[page:Float t] - 沿着[page:Ray]进行插值的距离。<br /><br />
将[page:Ray](射线)的原点沿着其方向移动给定的距离。
</p>
<h3>[method:Ray set]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
<p>
[page:Vector3 origin] - [page:Ray](射线)的[page:.origin origin](原点)。<br />
[page:Vector3 origin] - [page:Ray](射线)的[page:.direction direction](方向)。
该向量必须经过标准化(使用[page:Vector3.normalize]),这样才能使方法正常运行。
<br /><br />
将传入的参数赋值给射线的[page:.origin origin]和[page:.direction direction]。
</p>
<h2>源代码</h2>
<p>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</p>
</body>
</html>
|