Files
Zivro/Report/uml/transform-compose-algorithm.puml
2026-03-19 14:54:09 +03:00

20 lines
657 B
Plaintext

@startuml
title Алгоритм композиции трансформаций (parent * local)
start
:Input parent transform:\nP(tx,ty,angle,sx,sy,opacity);
:Input local transform:\nL(tx,ty,angle,sx,sy,opacity);
:Scale local position by parent scale:\nlx' = L.tx * P.sx\nly' = L.ty * P.sy;
:Rotate by parent angle:\nrx = cos(P.a)*lx' - sin(P.a)*ly'\nry = sin(P.a)*lx' + cos(P.a)*ly';
:Translate by parent position:\nW.tx = P.tx + rx\nW.ty = P.ty + ry;
:Compose angle:\nW.angle = P.angle + L.angle;
:Compose scale:\nW.sx = P.sx * L.sx\nW.sy = P.sy * L.sy;
:Compose opacity:\nW.opacity = P.opacity * L.opacity;
:Return world transform W;
stop
@enduml