ставь чайник, зажигай плиту
-
Автор темы
- #1
giphy съело фпс и качество, на самом деле в игре выглядит отлично =)
C++:
static float rainbow_animation;
static ImVec2 screen_center = ImGui::GetIO( ).DisplaySize / 2.f;
rainbow_animation += 0.002f; // 0.002f <-- speed (NOTE: Use ImGui::GetIO( ).DeltaTime to have stable animation speed)
static const float heart_size = 15.f;
if ( rainbow_animation > 1.f )
rainbow_animation = 0.f;
auto fdl = ImGui::GetForegroundDrawList( );
auto fx = [ ] ( float t ) -> float { return 16 * std::pow( std::sin( t ), 3 ); };
auto fy = [ ] ( float t ) -> float { return 13 * std::cos( t ) - 5 * std::cos( 2 * t ) - 2 * std::cos( 3 * t ) - std::cos( 4 * t ); };
for ( float sz = heart_size; sz > 0.f; sz -= heart_size / 350.f ) {
for ( float t = 0.f; t < 2 * sdk::k_pi<float>; t += sdk::k_pi<float> / 48.f ) {
auto x = sz * fx( t );
auto y = sz * fy( t );
fdl->PathLineTo( screen_center - ImVec2( x, y ) );
}
float hue = ( 1.f / heart_size ) * sz;
hue -= rainbow_animation;
if ( hue < 0.f ) hue += 1.f;
fdl->PathFillConvex( ImColor( 0, 0, 0 ).HSV( hue, 1.f, 1.f ) );
fdl->PathClear( );
}
по вопросам нахуя - нахуй, это просто интересно =)
Вложения
-
200.1 KB Просмотры: 23