M3SCALE
M3SCALE BYREF M, Ox, Oy, Sx, Sy
Multiply the 2D transformation matrix M
by a scale
matrix. Sx
and Sy
are the scaling factors in x
and y direction. Ox
and Oy
define the position
of the origin.
If Ox = 0
and Oy = 0
then the scaling
matrix M
has the form:
0 0|
|Sx 0 Sy 0|
MScale = |0 0 1| |
else:
1 0 Ox| |Sx 0 0| |1 0 -Ox| |Sx 0 (1 - Sx) * Ox|
|0 1 Oy| * | 0 Sy 0| * |0 1 -Oy| = | 0 Sy (1 - Sy) * Oy|
MScale = |0 0 1| | 0 0 1| |0 0 1| | 0 0 1| |
Example
DIM M(2,2)
1,-1, 1,-1, 1,1, -1,1, -1,-1] ' Create a rectangular polygon
Rectangle = [-
M3IDENT M ' Create Identity Matrix
M3Trans M, 100,100 ' Move rectangle to position (100,100)
M3SCALE M, 0, 0, 50, 50 ' Scale rectangle by factor 50 in x and y
M3ROTATE M, 45*pi/180 ' Rotate by 45°
M3APPLY M, Rectangle ' Transform the rectangle
DRAWPOLY Rectangle
M3TRANS, M3SCALE and M3ROTATE perform a matrix multiplication. When performing matrix multiplication, then last matrix is applied first. In the example above, the rectangle is first rotated, then scaled and in the last step translated. If the order is changed, the outcome might be different.
Math
ABS
ABSMAX
ABSMIN
ACOS
ACOSH
ACOT
ACOTH
ACSC
ACSCH
ASEC
ASECH
ASIN
ASINH
ATAN
ATAN2
ATANH
ATN
CEIL
COS
COSH
COT
COTH
CSC
CSCH
DEG
DERIV
DETERM
DIFFEQN
EXP
EXPRSEQ
FIX
FLOOR
FRAC
INT
INTERSECT
INVERSE
LINEQN
LOG
LOG10
M3APPLY
M3IDENT
M3ROTATE
M3SCALE
M3TRANS
MAX
MIN
POLYAREA
POLYCENT
POLYEXT
POW
PTDISTLN
PTDISTSEG
PTSIGN
RAD
RND
ROOT
ROUND
SEC
SECH
SEGCOS
SEGLEN
SEGSIN
SEQ
SGN
SIN
SINH
SQR
STATMEAN
STATMEANDEV
STATMEDIAN
STATSPREADP
STATSPREADS
STATSTD
SUM
SUMSQ
TAN
TANH
TRANSPOSE
If there is insufficient information on this page and you wish learn more about M3SCALE,
please send an email to smallbasic@gmail.com. You can help to improve information about
M3SCALE by submitting a pull request,
click View Source for details. Note, an offline language reference text file is also available - see the Download section.