Доки
This commit is contained in:
62
wayland/docs/uml/diagram-state-figure.puml
Normal file
62
wayland/docs/uml/diagram-state-figure.puml
Normal file
@@ -0,0 +1,62 @@
|
||||
@startuml
|
||||
title Диаграмма состояний фигуры
|
||||
|
||||
[*] --> Circle : init (по умолчанию)
|
||||
|
||||
Circle : Красный цвет (0xFFFF0000)
|
||||
Circle : radius точек = 16
|
||||
Triangle : Зелёный цвет (0xFF00FF00)
|
||||
Triangle : radius точек = 3
|
||||
Square : Синий цвет (0xFF0000FF)
|
||||
Square : radius точек = 4
|
||||
|
||||
Circle --> Triangle : Клавиша '2'
|
||||
Circle --> Square : Клавиша '3'
|
||||
|
||||
Triangle --> Circle : Клавиша '1'
|
||||
Triangle --> Square : Клавиша '3'
|
||||
|
||||
Square --> Circle : Клавиша '1'
|
||||
Square --> Triangle : Клавиша '2'
|
||||
|
||||
Circle : velocity движет позицию
|
||||
Circle : angular_velocity вращает
|
||||
Triangle : velocity движет позицию
|
||||
Triangle : angular_velocity вращает
|
||||
Square : velocity движет позицию
|
||||
Square : angular_velocity вращает
|
||||
|
||||
note right of Circle
|
||||
Общие свойства для всех состояний:
|
||||
- position (x, y)
|
||||
- velocity (vx, vy)
|
||||
- angle (угол поворота)
|
||||
- angular_velocity (скорость вращения)
|
||||
- speed (множитель скорости: 1-30)
|
||||
- radius (радиус в пикселях)
|
||||
|
||||
Управление:
|
||||
- '+'/'-': изменение speed
|
||||
- Up/Down: изменение radius
|
||||
- Enter: создать новое окно
|
||||
end note
|
||||
|
||||
state "Коллизия с границей" as Collision {
|
||||
[*] --> CheckCollision
|
||||
CheckCollision --> InvertVelocity : точка вышла за границу
|
||||
InvertVelocity --> UpdateAngularVel : инверсия компоненты velocity
|
||||
UpdateAngularVel --> CheckCollision : обновление angular_velocity
|
||||
|
||||
CheckCollision : проверка всех точек фигуры
|
||||
InvertVelocity : vel = -vel (по оси коллизии)
|
||||
UpdateAngularVel : зависит от направления движения
|
||||
}
|
||||
|
||||
Circle --> Collision : каждый frame
|
||||
Triangle --> Collision : каждый frame
|
||||
Square --> Collision : каждый frame
|
||||
Collision --> Circle
|
||||
Collision --> Triangle
|
||||
Collision --> Square
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user