mirror of
https://github.com/AngelJumbo/lavat.git
synced 2025-04-19 21:38:23 +00:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8a78d224f3 | ||
![]() |
5d64841acc | ||
![]() |
76142a8031 | ||
![]() |
8c27f06ffd | ||
![]() |
a8b09e8b8a | ||
![]() |
79f1857781 | ||
![]() |
1a7b55d715 | ||
![]() |
cfed09d5ba | ||
![]() |
3fc48166fb |
13
README.md
13
README.md
@ -9,7 +9,7 @@ Requirements: A Unix-like system, a C compiler and make.
|
|||||||
```
|
```
|
||||||
git clone https://github.com/AngelJumbo/lavat
|
git clone https://github.com/AngelJumbo/lavat
|
||||||
cd lavat
|
cd lavat
|
||||||
make install
|
sudo make install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Arch Linux
|
### Arch Linux
|
||||||
@ -22,13 +22,17 @@ $ paru -S lavat-git
|
|||||||
```
|
```
|
||||||
Usage: lavat [OPTIONS]
|
Usage: lavat [OPTIONS]
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c <COLOR> Set color. Available colours: red, blue, yellow, green, cyan, magenta, white and black.
|
-g Enable gradient mode with truecolor support.
|
||||||
|
Changes how -c and -k options work.
|
||||||
|
-c <COLOR> Set color. In normal mode, available colors are: red, blue, yellow, green, cyan, magenta, white, and black.
|
||||||
|
In gradient mode (-g), use hex format: RRGGBB (e.g., FF0000 for red).
|
||||||
|
-k <COLOR> Set the rim color. Same format options as -c.
|
||||||
|
In gradient mode, this sets the second color for the gradient.
|
||||||
-s <SPEED> Set the speed, from 1 to 10. (default 5)
|
-s <SPEED> Set the speed, from 1 to 10. (default 5)
|
||||||
-r <RADIUS> Set the radius of the metaballs, from 1 to 10. (default: 5)
|
-r <RADIUS> Set the radius of the metaballs, from 1 to 10. (default: 5)
|
||||||
-R <RIM> Set a rim for each metaball, sizes from 1 to 5.(default: none)
|
-R <RIM> Set a rim for each metaball, sizes from 1 to 5.(default: none)
|
||||||
This option does not work with the default color
|
This option does not work with the default color
|
||||||
If you use Kitty or Alacritty you must use it with the -k option to see the rim.
|
If you use Kitty or Alacritty you must use it with the -k option to see the rim.
|
||||||
-k <COLOR> Set the color of the rim if there is one. Available colours: red, blue, yellow, green, cyan, magenta, white and black.
|
|
||||||
-b <NBALLS> Set the number of metaballs in the simulation, from 5 to 20. (default: 10)
|
-b <NBALLS> Set the number of metaballs in the simulation, from 5 to 20. (default: 10)
|
||||||
-F <CHARS> Allows for a custom set of chars to be used
|
-F <CHARS> Allows for a custom set of chars to be used
|
||||||
Only ascii symbols are supported for now, wide/unicode chars may appear broken.
|
Only ascii symbols are supported for now, wide/unicode chars may appear broken.
|
||||||
@ -49,6 +53,9 @@ RUNTIME CONTROLS:
|
|||||||
- Decrease speed.
|
- Decrease speed.
|
||||||
p TURN ON THE PARTY AND CYCLE THROUGH THE PARTY MODES (it can also turns off the party).
|
p TURN ON THE PARTY AND CYCLE THROUGH THE PARTY MODES (it can also turns off the party).
|
||||||
(Tip: Zoom out in your terminal before running the program to get a better resolution of the lava).
|
(Tip: Zoom out in your terminal before running the program to get a better resolution of the lava).
|
||||||
|
EXAMPLES:
|
||||||
|
lavat -c green -k red Use named colors in normal mode
|
||||||
|
lavat -g -c 00FF00 -k FF0000 Use hex colors in gradient mode
|
||||||
```
|
```
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
214
lavat.c
214
lavat.c
@ -1,4 +1,6 @@
|
|||||||
#define TB_IMPL
|
#define TB_IMPL
|
||||||
|
#define TB_LIB_OPTS
|
||||||
|
#define TB_OPT_TRUECOLOR
|
||||||
|
|
||||||
#include "termbox.h"
|
#include "termbox.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -6,6 +8,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <float.h>
|
||||||
|
|
||||||
#define MIN_NBALLS 5
|
#define MIN_NBALLS 5
|
||||||
#define MAX_NBALLS 20
|
#define MAX_NBALLS 20
|
||||||
@ -17,6 +20,12 @@ typedef struct {
|
|||||||
int dy;
|
int dy;
|
||||||
} Ball;
|
} Ball;
|
||||||
|
|
||||||
|
uintattr_t pallete[11];
|
||||||
|
int baseColor[3];
|
||||||
|
int baseColor2[3];
|
||||||
|
short gradient1=0;
|
||||||
|
short gradient2=0;
|
||||||
|
|
||||||
static char *custom = NULL;
|
static char *custom = NULL;
|
||||||
static char *custom2 = NULL;
|
static char *custom2 = NULL;
|
||||||
static short color = TB_WHITE;
|
static short color = TB_WHITE;
|
||||||
@ -26,7 +35,7 @@ static int nballs = 10;
|
|||||||
static short speedMult = 5;
|
static short speedMult = 5;
|
||||||
static short rim = 1;
|
static short rim = 1;
|
||||||
static short contained = 0;
|
static short contained = 0;
|
||||||
static float radiusIn = 100;
|
static float radiusIn = 110;
|
||||||
static float radius;
|
static float radius;
|
||||||
static int margin;
|
static int margin;
|
||||||
static float sumConst;
|
static float sumConst;
|
||||||
@ -45,6 +54,45 @@ short next_color(short current);
|
|||||||
void fix_rim_color();
|
void fix_rim_color();
|
||||||
void set_random_colors(short level);
|
void set_random_colors(short level);
|
||||||
|
|
||||||
|
void set_pallete();
|
||||||
|
uintattr_t get_color(float val);
|
||||||
|
void set_pallete2();
|
||||||
|
|
||||||
|
int set_color(short *var, int *baseColor, char *optarg, short useGradient) {
|
||||||
|
if (useGradient) {
|
||||||
|
// Parse hex color
|
||||||
|
if (sscanf(optarg, "%02x%02x%02x", &baseColor[0], &baseColor[1], &baseColor[2]) == 3) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
printf("Invalid hex color format. Use format: RRGGBB\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Parse named color
|
||||||
|
if (strcmp(optarg, "red") == 0) {
|
||||||
|
*var = TB_RED;
|
||||||
|
} else if (strcmp(optarg, "yellow") == 0) {
|
||||||
|
*var = TB_YELLOW;
|
||||||
|
} else if (strcmp(optarg, "blue") == 0) {
|
||||||
|
*var = TB_BLUE;
|
||||||
|
} else if (strcmp(optarg, "green") == 0) {
|
||||||
|
*var = TB_GREEN;
|
||||||
|
} else if (strcmp(optarg, "magenta") == 0) {
|
||||||
|
*var = TB_MAGENTA;
|
||||||
|
} else if (strcmp(optarg, "cyan") == 0) {
|
||||||
|
*var = TB_CYAN;
|
||||||
|
} else if (strcmp(optarg, "black") == 0) {
|
||||||
|
*var = TB_BLACK;
|
||||||
|
} else if (strcmp(optarg, "white") == 0) {
|
||||||
|
*var = TB_WHITE;
|
||||||
|
} else {
|
||||||
|
printf("Unknown color: %s\n", optarg);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
if (!parse_options(argc, argv))
|
if (!parse_options(argc, argv))
|
||||||
@ -61,6 +109,7 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
init_params();
|
init_params();
|
||||||
|
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
// move balls
|
// move balls
|
||||||
@ -88,13 +137,28 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
for (int k = 0; k < nballs; k++) {
|
for (int k = 0; k < nballs; k++) {
|
||||||
int y = j * 2 + j2;
|
int y = j * 2 + j2;
|
||||||
sum[j2] += (radius * radius) /
|
float dist_squared = (i - balls[k].x) * (i - balls[k].x) + (y - balls[k].y) * (y - balls[k].y);
|
||||||
((float)((i - balls[k].x) * (i - balls[k].x) +
|
if (dist_squared == 0) {
|
||||||
(y - balls[k].y) * (y - balls[k].y)));
|
sum[j2] += FLT_MAX;
|
||||||
|
} else {
|
||||||
|
sum[j2] += (radius * radius) / dist_squared;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!custom) {
|
if (!custom) {
|
||||||
|
if(gradient1){
|
||||||
|
if (sum[0] > sumConst) {
|
||||||
|
if (sum[1] > sumConst) {
|
||||||
|
tb_printf(i, j, get_color( sum[0]), get_color(sum[1]), "▀");
|
||||||
|
} else {
|
||||||
|
tb_printf(i, j, get_color( sum[0]), TB_TRUECOLOR_DEFAULT, "▀");
|
||||||
|
}
|
||||||
|
} else if (sum[1] > sumConst) {
|
||||||
|
tb_printf(i, j,get_color( sum[1]),TB_TRUECOLOR_DEFAULT, "▄");
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
if (sum[0] > sumConst) {
|
if (sum[0] > sumConst) {
|
||||||
if (sum[1] > sumConst) {
|
if (sum[1] > sumConst) {
|
||||||
tb_printf(i, j, color2, 0, "█");
|
tb_printf(i, j, color2, 0, "█");
|
||||||
@ -116,6 +180,7 @@ int main(int argc, char *argv[]) {
|
|||||||
tb_printf(i, j, color2, color, "▀");
|
tb_printf(i, j, color2, color, "▀");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (sum[0] > sumConst) {
|
if (sum[0] > sumConst) {
|
||||||
tb_printf(i, j, color2, 0, custom2);
|
tb_printf(i, j, color2, 0, custom2);
|
||||||
@ -188,22 +253,22 @@ void event_handler() {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
if (radiusIn + 10 <= 150) {
|
if (radiusIn + 5 <= 150) {
|
||||||
radiusIn += 10;
|
radiusIn += 5;
|
||||||
radius = (radiusIn * radiusIn + (float)(maxX * maxY)) / 15000;
|
radius = (radiusIn * radiusIn + (float)(maxX * maxY)) / 15000;
|
||||||
margin = contained ? radius * 10 : 0;
|
margin = contained ? radius * 10 : 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
if (radiusIn - 10 >= 50) {
|
if (radiusIn - 5 >= 100) {
|
||||||
radiusIn -= 10;
|
radiusIn -= 5;
|
||||||
radius = (radiusIn * radiusIn + (float)(maxX * maxY)) / 15000;
|
radius = (radiusIn * radiusIn + (float)(maxX * maxY)) / 15000;
|
||||||
margin = contained ? radius * 10 : 0;
|
margin = contained ? radius * 10 : 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'I':
|
case 'I':
|
||||||
|
|
||||||
if (color != TB_WHITE || custom)
|
if (color != TB_WHITE || custom || gradient1 )
|
||||||
if (rim + 1 <= 5) {
|
if (rim + 1 <= 5) {
|
||||||
rim++;
|
rim++;
|
||||||
sumConst2 = sumConst * (1 + (float)(0.25 * rim));
|
sumConst2 = sumConst * (1 + (float)(0.25 * rim));
|
||||||
@ -211,7 +276,7 @@ void event_handler() {
|
|||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
|
|
||||||
if (color != TB_WHITE || custom)
|
if (color != TB_WHITE || custom || gradient1)
|
||||||
if (rim - 1 >= 0) {
|
if (rim - 1 >= 0) {
|
||||||
rim--;
|
rim--;
|
||||||
sumConst2 = sumConst * (1 + (float)(0.25 * rim));
|
sumConst2 = sumConst * (1 + (float)(0.25 * rim));
|
||||||
@ -265,6 +330,12 @@ void init_params() {
|
|||||||
balls[i].dx = (rand() % 2 == 0) ? -1 : 1;
|
balls[i].dx = (rand() % 2 == 0) ? -1 : 1;
|
||||||
balls[i].dy = (rand() % 2 == 0) ? -1 : 1;
|
balls[i].dy = (rand() % 2 == 0) ? -1 : 1;
|
||||||
}
|
}
|
||||||
|
if(gradient1){
|
||||||
|
tb_set_output_mode(TB_OUTPUT_TRUECOLOR);
|
||||||
|
tb_set_clear_attrs(TB_TRUECOLOR_DEFAULT, TB_TRUECOLOR_DEFAULT);
|
||||||
|
if(gradient2) set_pallete2();
|
||||||
|
else set_pallete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
short next_color(short current){
|
short next_color(short current){
|
||||||
@ -273,6 +344,7 @@ short next_color(short current){
|
|||||||
return colors[(i+1)%8];
|
return colors[(i+1)%8];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return colors[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
void fix_rim_color(){
|
void fix_rim_color(){
|
||||||
@ -287,44 +359,36 @@ void set_random_colors( short level){
|
|||||||
fix_rim_color();
|
fix_rim_color();
|
||||||
}
|
}
|
||||||
|
|
||||||
int set_color(short *var, char *optarg) {
|
|
||||||
|
|
||||||
if (strcmp(optarg, "red") == 0) {
|
|
||||||
*var = TB_RED;
|
|
||||||
} else if (strcmp(optarg, "yellow") == 0) {
|
|
||||||
*var = TB_YELLOW;
|
|
||||||
} else if (strcmp(optarg, "blue") == 0) {
|
|
||||||
*var = TB_BLUE;
|
|
||||||
} else if (strcmp(optarg, "green") == 0) {
|
|
||||||
*var = TB_GREEN;
|
|
||||||
} else if (strcmp(optarg, "magenta") == 0) {
|
|
||||||
*var = TB_MAGENTA;
|
|
||||||
} else if (strcmp(optarg, "cyan") == 0) {
|
|
||||||
*var = TB_CYAN;
|
|
||||||
} else if (strcmp(optarg, "black") == 0) {
|
|
||||||
*var = TB_BLACK;
|
|
||||||
} else if (strcmp(optarg, "white") == 0) {
|
|
||||||
*var = TB_WHITE;
|
|
||||||
} else {
|
|
||||||
printf("Unknown color: %s\n", optarg);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int parse_options(int argc, char *argv[]) {
|
int parse_options(int argc, char *argv[]) {
|
||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
int c;
|
int c;
|
||||||
while ((c = getopt(argc, argv, ":c:k:s:r:R:b:F:Cp:h")) != -1) {
|
// First pass to check for gradient mode
|
||||||
|
optind = 1; // Reset getopt
|
||||||
|
while ((c = getopt(argc, argv, ":c:k:s:r:R:b:F:Cp:hg")) != -1) {
|
||||||
|
if (c == 'g') {
|
||||||
|
gradient1 = 1;
|
||||||
|
if (!tb_has_truecolor()) {
|
||||||
|
fprintf(stderr, "The terminal does not support truecolor\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset getopt for second pass
|
||||||
|
optind = 1;
|
||||||
|
while ((c = getopt(argc, argv, ":c:k:s:r:R:b:F:Cp:hg")) != -1) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'c':
|
case 'c':
|
||||||
if (!set_color(&color, optarg))
|
if (!set_color(&color, baseColor, optarg, gradient1))
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
case 'k':
|
case 'k':
|
||||||
if (!set_color(&color2, optarg))
|
if (!set_color(&color2, baseColor2, optarg, gradient1))
|
||||||
return 0;
|
return 0;
|
||||||
|
gradient2 = gradient1; // If we're using gradient, enable the second gradient too
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
speedMult = atoi(optarg);
|
speedMult = atoi(optarg);
|
||||||
@ -341,17 +405,15 @@ int parse_options(int argc, char *argv[]) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
radiusIn = 50 + atoi(optarg) * 10;
|
radiusIn = 100 + atoi(optarg) * 5;
|
||||||
if (radiusIn > 150 || radiusIn < 50) {
|
if (radiusIn > 150 || radiusIn < 100) {
|
||||||
printf("Invalid radius, only values between 1 and 10 are allowed\n");
|
printf("Invalid radius, only values between 1 and 10 are allowed\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'b':
|
case 'b':
|
||||||
nballs = atoi(optarg);
|
nballs = atoi(optarg);
|
||||||
if (nballs > MAX_NBALLS || nballs < MIN_NBALLS) {
|
if (nballs > MAX_NBALLS || nballs < MIN_NBALLS) {
|
||||||
|
|
||||||
printf("Invalid number of metaballs, only values between %i and %i are "
|
printf("Invalid number of metaballs, only values between %i and %i are "
|
||||||
"allowed\n",
|
"allowed\n",
|
||||||
MIN_NBALLS, MAX_NBALLS);
|
MIN_NBALLS, MAX_NBALLS);
|
||||||
@ -375,6 +437,9 @@ int parse_options(int argc, char *argv[]) {
|
|||||||
print_help();
|
print_help();
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
|
case 'g':
|
||||||
|
// Already handled in first pass
|
||||||
|
break;
|
||||||
case ':':
|
case ':':
|
||||||
fprintf(stderr, "Option -%c requires an operand\n", optopt);
|
fprintf(stderr, "Option -%c requires an operand\n", optopt);
|
||||||
return 0;
|
return 0;
|
||||||
@ -391,8 +456,13 @@ void print_help() {
|
|||||||
printf(
|
printf(
|
||||||
"Usage: lavat [OPTIONS]\n"
|
"Usage: lavat [OPTIONS]\n"
|
||||||
"OPTIONS:\n"
|
"OPTIONS:\n"
|
||||||
" -c <COLOR> Set color. Available colours: red, blue, yellow, "
|
" -g Enable gradient mode with truecolor support.\n"
|
||||||
"green, cyan, magenta, white and black. \n"
|
" Changes how -c and -k options work.\n"
|
||||||
|
" -c <COLOR> Set color. In normal mode, available colors are: red, blue, yellow, "
|
||||||
|
"green, cyan, magenta, white, and black.\n"
|
||||||
|
" In gradient mode (-g), use hex format: RRGGBB (e.g., FF0000 for red).\n"
|
||||||
|
" -k <COLOR> Set the rim color. Same format options as -c.\n"
|
||||||
|
" In gradient mode, this sets the second color for the gradient.\n"
|
||||||
" -s <SPEED> Set the speed, from 1 to 10. (default 5)\n"
|
" -s <SPEED> Set the speed, from 1 to 10. (default 5)\n"
|
||||||
" -r <RADIUS> Set the radius of the metaballs, from 1 to 10. "
|
" -r <RADIUS> Set the radius of the metaballs, from 1 to 10. "
|
||||||
"(default: 5)\n"
|
"(default: 5)\n"
|
||||||
@ -402,8 +472,6 @@ void print_help() {
|
|||||||
"color\n"
|
"color\n"
|
||||||
" If you use Kitty or Alacritty you must use it "
|
" If you use Kitty or Alacritty you must use it "
|
||||||
"with the -k option to see the rim.\n"
|
"with the -k option to see the rim.\n"
|
||||||
" -k <COLOR> Set the color of the rim if there is one."
|
|
||||||
" Available colours: red, blue, yellow, green, cyan, magenta, white and black. \n"
|
|
||||||
" -b <NBALLS> Set the number of metaballs in the simulation, "
|
" -b <NBALLS> Set the number of metaballs in the simulation, "
|
||||||
"from %i to %i. (default: 10)\n"
|
"from %i to %i. (default: 10)\n"
|
||||||
" -F <CHARS> Allows for a custom set of chars to be used\n"
|
" -F <CHARS> Allows for a custom set of chars to be used\n"
|
||||||
@ -428,6 +496,58 @@ void print_help() {
|
|||||||
" p TURN ON THE PARTY AND CYCLE THROUGH THE PARTY MODES "
|
" p TURN ON THE PARTY AND CYCLE THROUGH THE PARTY MODES "
|
||||||
"(it can also turns off the party).\n"
|
"(it can also turns off the party).\n"
|
||||||
"(Tip: Zoom out in your terminal before running the program to get a "
|
"(Tip: Zoom out in your terminal before running the program to get a "
|
||||||
"better resolution of the lava).\n",
|
"better resolution of the lava).\n"
|
||||||
|
"EXAMPLES:\n"
|
||||||
|
" lavat -c green -k red Use named colors in normal mode\n"
|
||||||
|
" lavat -g -c 00FF00 -k FF0000 Use hex colors in gradient mode\n",
|
||||||
MIN_NBALLS, MAX_NBALLS);
|
MIN_NBALLS, MAX_NBALLS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_pallete(){
|
||||||
|
int avgColor= (baseColor[0] + baseColor[1] + baseColor[2])/3;
|
||||||
|
int blackfactor[5];
|
||||||
|
int whitefactor[5];
|
||||||
|
for(int i=1 ;i<6;i++){
|
||||||
|
blackfactor[i-1]=(6-i)*avgColor/5;
|
||||||
|
whitefactor[i-1]=i*(255-avgColor)/5;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i=0 ;i<5;i++){
|
||||||
|
int r, g, b;
|
||||||
|
float factor = (1 - ((float)blackfactor[i]/(avgColor)));
|
||||||
|
r = baseColor[0]*factor;
|
||||||
|
g = baseColor[1]*factor;
|
||||||
|
b = baseColor[2]*factor;
|
||||||
|
pallete[i]= (r << 16) | (g << 8) | b;
|
||||||
|
r = baseColor[0] + (255-baseColor[0])*whitefactor[i]/(255-avgColor);
|
||||||
|
g = baseColor[1] + (255-baseColor[1])*whitefactor[i]/(255-avgColor);
|
||||||
|
b = baseColor[2] + (255-baseColor[2])*whitefactor[i]/(255-avgColor);
|
||||||
|
pallete[i+6] = (r << 16) | (g << 8) | b;
|
||||||
|
|
||||||
|
}
|
||||||
|
pallete[5]= (baseColor[0] << 16) | (baseColor[1] << 8) | baseColor[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_pallete2() {
|
||||||
|
for (int i = 0; i < 11; i++) {
|
||||||
|
float t = (float)i / (11 - 1);
|
||||||
|
|
||||||
|
int r = (1 - t) * baseColor[0] + t * baseColor2[0];
|
||||||
|
int g = (1 - t) * baseColor[1] + t * baseColor2[1];
|
||||||
|
int b = (1 - t) * baseColor[2] + t * baseColor2[2];
|
||||||
|
|
||||||
|
pallete[i] = (r << 16) | (g << 8) | b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uintattr_t get_color(float val) {
|
||||||
|
val = (val - sumConst)/(0.001*(rim+1));
|
||||||
|
|
||||||
|
if (val > 10) {
|
||||||
|
return pallete[10];
|
||||||
|
} else if (val < 0) {
|
||||||
|
return pallete[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return pallete[(int)val];
|
||||||
|
}
|
||||||
|
10
makefile
10
makefile
@ -9,8 +9,10 @@ clean:
|
|||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: lavat
|
install: lavat
|
||||||
install -D lavat $(DESTDIR)$(PREFIX)/bin/lavat
|
mkdir -p $(PREFIX)/bin
|
||||||
|
install lavat $(PREFIX)/bin/lavat
|
||||||
|
|
||||||
|
.PHONY: uninstall
|
||||||
|
uninstall:
|
||||||
|
$(RM) $(PREFIX)/bin/lavat
|
||||||
|
|
||||||
.PHONY: unistall
|
|
||||||
unistall:
|
|
||||||
$(RM) $(DESTDIR)$(PREFIX)/bin/lavat
|
|
||||||
|
Loading…
Reference in New Issue
Block a user