Difference between revisions of "GSDP:GAM100/CProcessing/mat3 scale()"
From Inside
< GSDP:GAM100 | CProcessing
>Zachary.logsdon (New page: {{GSDP:GAM100API.css}} = mat3_scale() = == Description == Creates a Mat3 scale matrix from an input vector. ==== Parameters ==== mat3_scale(Vec2 scale) ...) |
>Zachary.logsdon |
||
| Line 2: | Line 2: | ||
= mat3_scale() = | = mat3_scale() = | ||
== Description == | == Description == | ||
| − | Creates a [[GSDP:GAM100/CProcessing/Mat3|Mat3]] scale matrix from an input | + | Creates a [[GSDP:GAM100/CProcessing/Mat3|Mat3]] scale matrix from an input [[GSDP:GAM100/CProcessing/Vec2|Vec2]]. |
==== Parameters ==== | ==== Parameters ==== | ||
mat3_scale(Vec2 scale) | mat3_scale(Vec2 scale) | ||
| − | * | + | *scale - ([[GSDP:GAM100/CProcessing/Vec2|Vec2]]) A vector containing the x and y scalars to create the matrix from. |
| − | |||
| − | |||
== Example == | == Example == | ||
<syntaxhighlight lang='c'> | <syntaxhighlight lang='c'> | ||
| − | |||
| − | |||
void init() | void init() | ||
{ | { | ||
| − | + | rectMode(CENTER); | |
| − | + | noStroke(); | |
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
void update() | void update() | ||
{ | { | ||
| + | // White background | ||
background(color(255, 255, 255, 255)); | background(color(255, 255, 255, 255)); | ||
| − | + | ||
| + | Vec2 position = vec2_set(canvasWidth / 2, canvasHeight / 2); | ||
| + | |||
| + | // Create a transform matrix | ||
| + | Mat3 scale = mat3_scale(vec2_set(150, 100)); | ||
| + | Mat3 translate = mat3_translate(position); | ||
| + | Mat3 rotate = mat3_rotate(90.0f); | ||
| + | |||
| + | // Combine transfrom | ||
| + | // Translate * rotation * scale | ||
| + | Mat3 transform = mat3_concat(translate, mat3_concat(rotate, scale)); | ||
| + | |||
| + | // Set the camera transfrom to the created matrix | ||
| + | applyMatrix(transform); | ||
| + | |||
| + | // Draw a blue cube at the "center" of the screen | ||
| + | fill(color(0, 0, 255, 255)); | ||
| + | rect(0, 0, 1, 1); | ||
| + | |||
| + | // Reset the matrix to the identity matrix | ||
| + | resetMatrix(); | ||
| + | |||
| + | // Draw a red cube in the center of the screen | ||
| + | fill(color(255, 0, 0, 255)); | ||
| + | rect(position.x, position.y, 50, 50); | ||
} | } | ||
| + | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 06:33, 26 June 2019
mat3_scale()
Description
Creates a Mat3 scale matrix from an input Vec2.
Parameters
mat3_scale(Vec2 scale)
- scale - (Vec2) A vector containing the x and y scalars to create the matrix from.
Example
void init()
{
rectMode(CENTER);
noStroke();
}
void update()
{
// White background
background(color(255, 255, 255, 255));
Vec2 position = vec2_set(canvasWidth / 2, canvasHeight / 2);
// Create a transform matrix
Mat3 scale = mat3_scale(vec2_set(150, 100));
Mat3 translate = mat3_translate(position);
Mat3 rotate = mat3_rotate(90.0f);
// Combine transfrom
// Translate * rotation * scale
Mat3 transform = mat3_concat(translate, mat3_concat(rotate, scale));
// Set the camera transfrom to the created matrix
applyMatrix(transform);
// Draw a blue cube at the "center" of the screen
fill(color(0, 0, 255, 255));
rect(0, 0, 1, 1);
// Reset the matrix to the identity matrix
resetMatrix();
// Draw a red cube in the center of the screen
fill(color(255, 0, 0, 255));
rect(position.x, position.y, 50, 50);
}