blob: 1a90bb7b5a26a77633337a259d0867ba51042cec (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <math.h>
#include "libsldj/util.h"
Color lineScanner(uint16_t x, uint16_t y, uint32_t frameNumber)
{
//uint8_t c = (x >> 8) + (uint8_t)(SLDJ_HYPOT2((x >> 9), (y >> 9)) * (frameNumber % 255));
//uint8_t c = sin(x * DEG2RAD) * 256;
//uint8_t c = SLDJ_SIN(x % 360) * 256;
uint8_t scale = random() % 2 + 7;
float scaleCos = SLDJ_COS(((int)(x * RAD2DEG) >> scale) % 360);
float scaleSin = SLDJ_SIN(((int)(y * RAD2DEG) >> scale) % 360);
uint8_t c1 = (x >> 8) + (uint8_t)(SLDJ_HYPOT2((x >> 8), (y >> 8)) * (frameNumber % 255));
uint8_t c2 = (x >> 8) + (uint8_t)(SLDJ_HYPOT2(scaleCos, scaleSin) * (frameNumber % 255));
uint8_t c3 = frameNumber + SLDJ_HYPOT2(((x - 32768) >> scale), ((y - 32768) >> scale));
uint8_t c = c1 & c2 & c3;
return (Color){
.r = c,
.g = c - 127,
.b = c,
.a = 255
};
}
|