traza/other.h

61 lines
1.6 KiB
C

void
cool_effect(rgb canvas[])
{
draw_line(canvas,
WHITE,
(vec2) {
cos(SDL_GetTicks()*0.001) * 300 + W/2,
sin(SDL_GetTicks()*0.001) * 300 + H/2,
},
(vec2) {
W/2,
H/2
});
draw_line(canvas,
WHITE,
(vec2) {
cos(SDL_GetTicks()*0.001+1.333*PI) * 300 + W/2,
sin(SDL_GetTicks()*0.001+1.333*PI) * 300 + H/2,
},
(vec2) {
W/2,
H/2
});
draw_line(canvas,
WHITE,
(vec2) {
cos(SDL_GetTicks()*0.001+0.667*PI) * 300 + W/2,
sin(SDL_GetTicks()*0.001+0.667*PI) * 300 + H/2,
},
(vec2) {
W/2,
H/2
});
/* vec2 a = {0, 100}, b = {200, 0}, c = {200, 200}; */
vec2 a = {
cos(SDL_GetTicks()*0.001) * 300 + W/2,
sin(SDL_GetTicks()*0.001) * 300 + H/2
};
vec2 b = {
cos(SDL_GetTicks()*0.001+0.667*PI) * 300 + W/2,
sin(SDL_GetTicks()*0.001+0.667*PI) * 300 + H/2
};
vec2 c = {
cos(SDL_GetTicks()*0.001+1.333*PI) * 300 + W/2,
sin(SDL_GetTicks()*0.001+1.333*PI) * 300 + H/2,
};
for (int i = 0; i < 10; i++) {
fill_triangle(canvas, i % 2 ? BLACK : WHITE, (triangle2){a, b, c});
vec2 tmp_a = midpoint(a, b);
vec2 tmp_b = midpoint(b, c);
vec2 tmp_c = midpoint(c, a);
a = tmp_a;
b = tmp_b;
c = tmp_c;
}
}