ставь чайник, зажигай плиту
-
Автор темы
- #1
Preview
or
Пожалуйста, авторизуйтесь для просмотра ссылки.
C++:
// Setup
auto front = ImGui::GetForegroundDrawList(); // also you can use GetWindowDrawList() or GetBackgroundDrawList()
ImVec2 center = ImGui::GetIO().DisplaySize / 2.f;
static ImColor fore_color(200, 20, 20, 255);
static ImColor back_color(200, 20, 20, 40);
static float arc_size = 0.45f; // 0.f < x < 2.f
static float radius = 35.f;
static float thickness = 4.f;
// Animation
static float position = 0.f;
position = ImLerp(position, IM_PI * 2.f, ImGui::GetIO().DeltaTime * 2.3f);
// Background
front->PathClear();
front->PathArcTo(center, radius, 0.f, 2.f * IM_PI, 40.f);
front->PathStroke(ImGui::GetColorU32(back_color.Value), 0, thickness);
// Foreground
front->PathClear();
front->PathArcTo(center, radius, IM_PI * 1.5f + position, IM_PI * (1.5f + arc_size) + position, 40.f);
front->PathStroke(ImGui::GetColorU32(fore_color.Value), 0, thickness);
// Reset animation
if (position >= IM_PI * 1.90f)
position = 0.f;