Vector2: Difference between revisions
>Blocco No edit summary |
>Blocco No edit summary |
||
Line 66: | Line 66: | ||
== Examples == | == Examples == | ||
In the following diagram, there are two line segments. These two line segments can be represented in Roblox with four '''Vector2''' values. <div style="border-radius:2px; -webkit-border-radius:2px; -moz-border-radius:2px; float:right; padding:3px; border-color:#999999; border-style:solid; border-width:1px; background-color:#bbbbbb;"><div style="padding:0px; border-color:#999999; border-style:solid; border-width:1px; margin:0px;">[[Image: | In the following diagram, there are two line segments. These two line segments can be represented in Roblox with four '''Vector2''' values. <div style="border-radius:2px; -webkit-border-radius:2px; -moz-border-radius:2px; float:right; padding:3px; border-color:#999999; border-style:solid; border-width:1px; background-color:#bbbbbb;"><div style="padding:0px; border-color:#999999; border-style:solid; border-width:1px; margin:0px;">[[Image:2Dvecspacesedit.png]]</div><div style="width:238px; color:#000000; padding:5px; margin:2px; margin-bottom:0px;">Diagram of two line segments using Cartesian Coordinates.</div></div> | ||
Lets say we have line '' '''A''' '': | Lets say we have line '' '''A''' '': | ||
<pre> | <pre> |
Revision as of 03:42, 21 November 2010
Vector2
A Vector2 is a number that holds two values inside it. There are currently has no objects which use this data type.
Vector2 has two values, an X ordinate, and Y ordinate. They're kind of like those coordinates you use in school on graphs. I'm sure you've seen something like (1, 5) somewhere before. This means that on a graph you go to the right 1, and then up 5. That's because a coordinate uses an X and a Y value. It looks like this (x, y) That's really all there is to it. Usually, the use of Vector2s are in doing simple calculations that UDim2s do not have built in. When people talk about the values inside a Vector2,
|
Constructors
Constructor | Description |
---|---|
Vector2.new(x, y) | Creates a new Vector2 using ordinates x, and y. |
Properties
All of these properties are Read Only (you can't just set them Vector2.x = 5, it doesn't work) but you can create new vectors with such changes, or apply an operation, seen in the next section.
Property | Type | Description |
---|---|---|
Vector2.x | Number | The x-coordinate |
Vector2.y | Number | The y-coordinate |
Vector2.unit | Vector2 | A normalized copy of the vector |
Vector2.magnitude | Number | The length of the vector |
Operators
Operator | Description |
---|---|
Vector2 + Vector2 | returns Vector2 translated (slid) by Vector2 |
Vector2 - Vector2 | returns Vector2 translated (slid) by -Vector2 (also gives relative position of 1 to the other) |
Number * Vector2 | returns Vector2 with each component multiplied by Number |
Vector2 * Number | returns Vector2 with each component multiplied by Number |
Number / Vector2 | returns Vector2 with Number divided by each component |
Vector2 / Number | returns Vector2 with each component divided by Number |
Vector2 * Vector2 | returns Vector2 with each component multiplied by corresponding component |
Vector2 / Vector2 | returns Vector2 with each component divided by corresponding component |
Examples
In the following diagram, there are two line segments. These two line segments can be represented in Roblox with four Vector2 values.
Lets say we have line A :
local lineA={Vector2.new(7, 1), Vector2.new(2, 1)}; lineA.magnitude = (lineA[1]-lineA[2]).magnitude lineA.unit = (lineA[1]-lineA[2]).unit
and line B :
local lineB={Vector2.new(1, -5), Vector2.new(3, -3)}; lineB.magnitude = (lineB[1]-lineB[2]).magnitude lineB.unit = (lineB[1]-lineB[2]).unit
Now, if we were to print the length (or magnitude) of each line segment, it would be the number displayed to the right of it:
print("The magnitude of line A is " .. lineA.magnitude .. " units.") print("The magnitude of line B is " .. lineB.magnitude .. " units.")
The output would be:
The magnitude of line A is 5. The magnitude of line B is 3.4142135623731.