Report
This commit is contained in:
28
Report/uml/coordinate-pipeline.puml
Normal file
28
Report/uml/coordinate-pipeline.puml
Normal file
@@ -0,0 +1,28 @@
|
||||
@startuml
|
||||
title Конвейер координат: Local -> World -> Canvas -> Buffer
|
||||
|
||||
skinparam rectangle {
|
||||
RoundCorner 10
|
||||
}
|
||||
|
||||
rectangle "Local coords\n(object space)" as L
|
||||
rectangle "World coords\n(document space)" as W
|
||||
rectangle "Canvas coords\n(scaled document)" as C
|
||||
rectangle "Buffer coords\n(visible rect origin)" as B
|
||||
|
||||
L --> W : localToWorld()\nrotate + scale + translate
|
||||
W --> C : world * scale_x/scale_y
|
||||
C --> B : subtract visible_rect.(x,y)
|
||||
|
||||
B --> C : + visible_rect.(x,y)
|
||||
C --> W : divide by scale_x/scale_y
|
||||
W --> L : worldToLocal()\ntranslate^-1 + rotate^-1 + scale^-1
|
||||
|
||||
note right of B
|
||||
All raster tests are done
|
||||
in buffer coords (integer pixels).
|
||||
Shape analytics often done
|
||||
in local coords after inverse map.
|
||||
end note
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user