参考 normal()

normal()

设置自定义 3D 形状中顶点的法线向量。

使用 beginShape()endShape() 创建的 3D 形状是通过连接称为顶点的点集创建的。 使用 vertex() 添加的每个顶点都有一个法线向量,该向量指向远离它的方向。法线向量控制着光线如何反射形状。

normal() 可以通过不同的参数以两种方式调用来定义法线向量的分量。

调用 normal() 的第一种方式有三个参数 xy,和 z。 如果传递了 Number,如 normal(1, 2, 3), 它们将设置法线向量的x、y和z分量。

调用 normal() 的第二种方式有一个参数,即 vector。如果传递了 p5.Vector 对象,如 normal(myVector) 则其分量将用于设置法线向量。

normal() 通过 vertex() 更改添加到自定义形状中的顶点的法线向量。normal() 必须在 beginShape()endShape() 函数之间调用。就像 vertex() 一样。通过调用 normal() 设置的法线向量会影响直到再次调用 normal() 之前的所有后续顶点:

beginShape(); <p>// Set the vertex normal. normal(-0.4, -0.4, 0.8);</p> <p>// Add a vertex. vertex(-30, -30, 0);</p> <p>// Set the vertex normal. normal(0, 0, 1);</p> <p>// Add vertices. vertex(30, -30, 0); vertex(30, 30, 0);</p> <p>// Set the vertex normal. normal(0.4, -0.4, 0.8);</p> <p>// Add a vertex. vertex(-30, 30, 0);</p> <p>endShape(); </p>

示例

语法

normal(vector)
normal(x, y, z)

参数

vector
p5.Vector:

vertex normal as a p5.Vector object.

x
Number:

x-component of the vertex normal.

y
Number:

y-component of the vertex normal.

z
Number:

z-component of the vertex normal.

Notice any errors or typos? Please let us know. Please feel free to edit src/core/shape/vertex.js and open a pull request!

相关参考