mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-03 05:48:42 +03:00
Fix code samples for Matrices and Transforms
This commit is contained in:
@@ -74,6 +74,7 @@ To do this in code, we can simply multiply each of the vectors:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
var t = Transform2D()
|
||||
# Scale
|
||||
t.x *= 2
|
||||
@@ -81,7 +82,8 @@ To do this in code, we can simply multiply each of the vectors:
|
||||
transform = t # Change the node's transform to what we just calculated.
|
||||
|
||||
.. code-tab:: csharp
|
||||
Transform2D t = new Transform2D();
|
||||
|
||||
Transform2D t = Transform2D.Identity;
|
||||
// Scale
|
||||
t.x *= 2;
|
||||
t.y *= 2;
|
||||
@@ -155,8 +157,9 @@ Here's how that would be done in code (place the script on a Node2D):
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
var t = Transform2D()
|
||||
|
||||
var rot = 0.5 # The rotation to apply.
|
||||
var t = Transform2D()
|
||||
t.x.x = cos(rot)
|
||||
t.y.y = cos(rot)
|
||||
t.x.y = sin(rot)
|
||||
@@ -164,8 +167,9 @@ Here's how that would be done in code (place the script on a Node2D):
|
||||
transform = t # Change the node's transform to what we just calculated.
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
float rot = 0.5f; // The rotation to apply.
|
||||
Transform2D t = new Transform2D();
|
||||
Transform2D t = Transform2D.Identity;
|
||||
t.x.x = t.y.y = Mathf.Cos(rot);
|
||||
t.x.y = t.y.x = Mathf.Sin(rot);
|
||||
t.y.x *= -1;
|
||||
@@ -242,6 +246,7 @@ you to try and reproduce the screenshot without looking at the code!
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
var t = Transform2D()
|
||||
# Translation
|
||||
t.origin = Vector2(350, 150)
|
||||
@@ -257,7 +262,8 @@ you to try and reproduce the screenshot without looking at the code!
|
||||
transform = t # Change the node's transform to what we just calculated.
|
||||
|
||||
.. code-tab:: csharp
|
||||
Transform2D t = new Transform2D();
|
||||
|
||||
Transform2D t = Transform2D.Identity;
|
||||
// Translation
|
||||
t.origin = new Vector2(350, 150);
|
||||
// Rotation
|
||||
@@ -306,13 +312,15 @@ As an example, let's set Y to (1, 1):
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
var t = Transform2D()
|
||||
# Shear by setting Y to (1, 1)
|
||||
t.y = Vector2.ONE
|
||||
transform = t # Change the node's transform to what we just calculated.
|
||||
|
||||
.. code-tab:: csharp
|
||||
Transform2D t = new Transform2D();
|
||||
|
||||
Transform2D t = Transform2D.Identity;
|
||||
// Shear by setting Y to (1, 1)
|
||||
t.y = Vector2.One;
|
||||
Transform = t; // Change the node's transform to what we just calculated.
|
||||
@@ -377,10 +385,12 @@ world space as using the "xform" method:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
# World space vector 100 units below the player.
|
||||
print(transform.xform(Vector2(0, 100)))
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
// World space vector 100 units below the player.
|
||||
GD.Print(Transform.Xform(new Vector2(0, 100)));
|
||||
|
||||
@@ -389,10 +399,12 @@ would be if it was instead defined relative to the player:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
# Where is (0, 100) relative to the player?
|
||||
print(transform.xform_inv(Vector2(0, 100)))
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
// Where is (0, 100) relative to the player?
|
||||
GD.Print(Transform.XformInv(new Vector2(0, 100)));
|
||||
|
||||
@@ -415,9 +427,11 @@ This code moves an object 100 units to its own right:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
transform.origin += transform.x * 100
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
Transform2D t = Transform;
|
||||
t.origin += t.x * 100;
|
||||
Transform = t;
|
||||
@@ -460,6 +474,7 @@ the code we would use:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
# Set up transforms just like in the image, except make positions be 100 times bigger.
|
||||
var parent = Transform2D(2, 0, 0, 1, 100, 200)
|
||||
var child = Transform2D(0.5, 0, 0, 0.5, 100, 100)
|
||||
@@ -476,6 +491,7 @@ the code we would use:
|
||||
transform = Transform2D(basis_x, basis_y, origin)
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
// Set up transforms just like in the image, except make positions be 100 times bigger.
|
||||
Transform2D parent = new Transform2D(2, 0, 0, 1, 100, 200);
|
||||
Transform2D child = new Transform2D(0.5f, 0, 0, 0.5f, 100, 100);
|
||||
@@ -496,6 +512,7 @@ applying one transform onto another using the `*` operator:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
# Set up transforms just like in the image, except make positions be 100 times bigger.
|
||||
var parent = Transform2D(Vector2(2, 0), Vector2(0, 1), Vector2(100, 200))
|
||||
var child = Transform2D(Vector2(0.5, 0), Vector2(0, 0.5), Vector2(100, 100))
|
||||
@@ -504,6 +521,7 @@ applying one transform onto another using the `*` operator:
|
||||
transform = parent * child
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
// Set up transforms just like in the image, except make positions be 100 times bigger.
|
||||
Transform2D parent = new Transform2D(2, 0, 0, 1, 100, 200);
|
||||
Transform2D child = new Transform2D(0.5f, 0, 0, 0.5f, 100, 100);
|
||||
@@ -531,11 +549,13 @@ transformations:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
var ti = transform.affine_inverse()
|
||||
var t = ti * transform
|
||||
# The transform is the identity transform.
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
Transform2D ti = Transform.AffineInverse();
|
||||
Transform2D t = ti * Transform;
|
||||
// The transform is the identity transform.
|
||||
@@ -545,12 +565,14 @@ same position (same for "xform_inv"):
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: gdscript GDScript
|
||||
|
||||
var ti = transform.affine_inverse()
|
||||
position = transform.xform(pos)
|
||||
position = ti.xform(pos)
|
||||
position = transform.xform(position)
|
||||
position = ti.xform(position)
|
||||
# The position is the same as before.
|
||||
|
||||
.. code-tab:: csharp
|
||||
|
||||
Transform2D ti = Transform.AffineInverse();
|
||||
Position = Transform.Xform(Position);
|
||||
Position = ti.Xform(Position);
|
||||
|
||||
Reference in New Issue
Block a user