some modifs about color height

This commit is contained in:
asus
2024-01-09 17:46:14 +01:00
parent dcdf16d4e7
commit b2196a112e
10 changed files with 23 additions and 16 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
fdf

Binary file not shown.

View File

@@ -71,7 +71,10 @@ int **parse_map(t_fdf *fdf, int fd);
// steps size for the hight transform with p and o
// must be > 0
// 100 is small, 1 is the biggest
# define Z_HIGHT 10
# define Z_HEIGHT 10
// color for altitude
# define Z_COLOR 0xffffff;
# define ESCAPE 65307
# define UP 65362

View File

@@ -72,15 +72,20 @@ void draw_lines(t_fdf *fdf, int *start, int *end)
void draw_color_pixel(t_fdf *fdf, int new_x, int new_y, int z)
{
int color;
int height;
color = 0xffffff;
z -= (z * fdf->zoom) / fdf->offset;
if (z > 0)
z /= fdf->altitude;
if (z > fdf->min_z && fdf->z_amplitude)
color = Z_COLOR;
height = z;
if (height != 0)
height /= fdf->altitude;
//height -= (height * fdf->zoom) / fdf->offset;
height -= height / fdf->offset;
if (height > fdf->min_z && fdf->z_amplitude)
{
color = color ^ (((0xff / fdf->z_amplitude) * (z - fdf->min_z)) << 16);
color = color ^ (((0xff / fdf->z_amplitude) * (z - fdf->min_z)) << 0);
color = color ^ (((0xff) * (height - fdf->min_z)) << 16);
color = color ^ (((0xff) * (height - fdf->min_z)) << 0);
//color = color ^ (((0xff / fdf->z_amplitude) * (height - fdf->min_z)) << 16);
//color = color ^ (((0xff / fdf->z_amplitude) * (height - fdf->min_z)) << 0);
}
draw_pixel(fdf, new_x, new_y, color);
}

View File

@@ -30,7 +30,7 @@ void keypress_more(int keycode, t_fdf *fdf)
else if (keycode == O)
fdf->altitude++;
else if (keycode == P)
if (fdf->altitude > 0)
//if (fdf->altitude > 0)
fdf->altitude--;
}

View File

@@ -21,6 +21,7 @@ int *new_coordinates(t_fdf *fdf, int i, int j)
int x;
int y;
int z;
int height;
int *point;
point = ft_calloc(3, sizeof(int));
@@ -28,14 +29,12 @@ int *new_coordinates(t_fdf *fdf, int i, int j)
y = j * (fdf->offset + fdf->zoom);
x -= (fdf->map_size_x + fdf->zoom * fdf->map_width) / 2;
y -= (fdf->map_size_y + fdf->zoom * fdf->map_height) / 2;
if (fdf->altitude > 0)
z = fdf->map[j][i] * fdf->altitude;
else if (fdf->altitude == 0)
z = 0;
else
z = fdf->map[j][i];
z = fdf->map[j][i] * fdf->altitude;
z += (z * fdf->zoom) / fdf->offset;
z /= Z_HIGHT;
height = Z_HEIGHT;
if (height == 0)
height = 1;
z /= height;
point[0] = x * cos(fdf->rad_x) + y * sin(fdf->rad_x);
point[1] = y * cos(fdf->rad_x) - x * sin(fdf->rad_x);
point[1] = point[1] * cos(fdf->rad_y) - -z * sin(fdf->rad_y);