tw.js是一种API,可以轻松使用代码创建2D形状。跟进,您将学习如何从JavaScript中创建和动画形状。
twe.js是渲染器的敏捷,因此您可以依靠同一API使用Canvas,SVG或WebGL绘制2D。该库具有许多方法,可用于控制屏幕上的不同形状或它们的动画。图书馆的未压缩版本的大小约为128 kb,而压缩版本为50 kb。如果您使用的是最新版本,则可以使用自定义构建进一步减少库的大小。。您可以传递不同对象的列表,也可以将一组对象,路径或组作为参数传递给此方法。它还将一次返回填充
,lineWidth值。我们实际上将设置小组的位置。由于矩形是组的一部分,因此它们将自动移动。
您可以在两个js中定义线性和径向梯度。定义梯度并不意味着它将在屏幕上自动渲染,但是在设置两个时,您可以使用它。makelineargradient(x1,y1,y1,x2,y2,stop)。值新的两个stop(偏移,颜色,不透明度),其中两个。MakerAdialGradient(x,y,radius,stop,stop,fx,fy>>)。在这种情况下,值二。makeText(消息,x,y,样式)消息
是您要编写的实际文本。参数 x
和 y<code>message
是该点的坐标,它将充当编写文本的中心。 样式<code>x
参数是一个可以用于设置大型属性值的对象。y
>styles
>您可以使用样式设置诸如font family
size size <p>,<code> code> Acod> Aligimment <ancimegnment>。您还可以指定诸如<code> fill<code>family
, stroke<code>size
, opacity <code>alignment
, rotage> rotation <code>fill
, scor> scor<code>stroke
和 translation<code>opacity
rotation
scale
translation
var rects = [];<br><br>var elemWidth = document.querySelector("#draw-shapes").offsetWidth;<br><br>for (i = 0; i < 100; i++) {<br> rects[i] = two.makeRectangle(<br> Math.floor(Math.random() * elemWidth * 2),<br> Math.floor(Math.random() * 420 * 2),<br> 10 + Math.floor(Math.random() * 100),<br> 10 + Math.floor(Math.random() * 100)<br> );<br>}<br><br>var group = two.makeGroup(...rects);<br><br>group.noFill();<br>group.stroke = "black";<br>group.linewidth = 6;<br><br>two.update();<br>
centerX
centerY
在本教程中,我将向您展示如何使用Two.js呈现元素周期表的前十个要素,电子围绕核旋转的电子。核还将有一些轻微的动作来提高我们表示的视觉吸引力。elementNames
>styles
我们首先定义一些变量和函数,这些变量和函数将在以后使用。
intRange()
>上面的代码存储了我们窗口中心的坐标,以变量 cope> cente> cente> centerx <centex> and 和 Centery。这些将稍后将我们的原子放在中心。 <code> elementNames<pre class="brush:php;toolbar:false">var centerX = window.innerWidth / 2;<br>var centerY = window.innerHeight / 2;<br><br>var elem = document.getElementById("atoms");<br><br>var elementNames = [<br> "",<br> "Hydrogen",<br> "Helium",<br> "Lithium",<br> "Beryllium",<br> "Boron",<br> "Carbon",<br> "Nitrogen",<br> "Oxygen",<br> "Fluorine",<br> "Neon"<br>];<br><br>var styles = {<br> alignment: "center",<br> size: 36,<br> family: "Lato"<br>};<br><br>var nucleusCount = 10;<br>var nucleusArray = Array();<br><br>var electronCount = 10;<br>var electronArray = Array();<br><br>function intRange(min, max) {<br> return Math.random() * (max - min) + min;<br>}<br></pre>阵列包含周期表的前十个元素的名称。每个名称的索引对应于该元素的电子和质子的数量,它以一个空字符串开始。 <code>样式<p>对象包含用于造型文本对象的属性。</p>><p>我们还定义了一个函数<code> intrange()<code>intRange()
在给定的极端内获取一个随机的整数值。makeCircle()
nucleusArray
intrange()功能将所有这些中子和质子放置在彼此20个像素中。 <code> makeCircle()方法还将这些质子和中子的半径设置为10像素。之后,我们迭代<code> nucleusArray ,并用不同的梯度交替填充每个圆圈。在核内放置中子和质子很容易。但是,将电子适当地放置在均匀距离处将需要一些数学。我们使用<pre class="brush:php;toolbar:false">var rects = [];<br><br>var elemWidth = document.querySelector("#draw-shapes").offsetWidth;<br><br>for (i = 0; i < 100; i++) {<br> rects[i] = two.makeRectangle(<br> Math.floor(Math.random() * elemWidth * 2),<br> Math.floor(Math.random() * 420 * 2),<br> 10 + Math.floor(Math.random() * 100),<br> 10 + Math.floor(Math.random() * 100)<br> );<br>}<br><br>var group = two.makeGroup(...rects);<br><br>group.noFill();<br>group.stroke = "black";<br>group.linewidth = 6;<br><br>two.update();<br></pre>>变量来指定不同电子壳与核的距离。整个圆的角度等于2 Pi弧度。我们可以通过平等分配2个PI弧度来统一地放置不同的电子。<ancy><p>><code>shellRadius
>和函数用于根据其角度的角度分离不同电子的位置向量的垂直和水平成分。它还一次将所有电子的填充颜色设置为特定轨道。它还告诉Two.js以特定的速度旋转电子和质子。Math.cos()
Math.sin()
>代码的最后一部分使我们通过单击鼠标或敲击来迭代元素。为了加载下一个元素,我们将更多电子和一个质子或中子可见,然后更新元素名称。单击最后一个元素后,所有粒子都会再次隐藏,因此我们可以重新开始。
var centerX = window.innerWidth / 2;<br>var centerY = window.innerHeight / 2;<br><br>var elem = document.getElementById("atoms");<br><br>var elementNames = [<br> "",<br> "Hydrogen",<br> "Helium",<br> "Lithium",<br> "Beryllium",<br> "Boron",<br> "Carbon",<br> "Nitrogen",<br> "Oxygen",<br> "Fluorine",<br> "Neon"<br>];<br><br>var styles = {<br> alignment: "center",<br> size: 36,<br> family: "Lato"<br>};<br><br>var nucleusCount = 10;<br>var nucleusArray = Array();<br><br>var electronCount = 10;<br>var electronArray = Array();<br><br>function intRange(min, max) {<br> return Math.random() * (max - min) + min;<br>}<br>
更多JavaScript Resources
以上是初学者的指南绘制2D图形的指南的详细内容。更多信息请关注PHP中文网其他相关文章!