Skip to content

Commit c65fe6f

Browse files
committed
fdf we have successfully fixed distance calculation :D
1 parent fa2f2fa commit c65fe6f

26 files changed

+1777
-72
lines changed

draw_line.c

Whitespace-only changes.

fdf.c

+28-15
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: obastug <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2025/01/02 11:39:32 by ebabaogl #+# #+# */
9-
/* Updated: 2025/01/04 16:36:54 by obastug ### ########.fr */
9+
/* Updated: 2025/01/07 16:46:36 by obastug ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -23,34 +23,41 @@
2323

2424
void put_pixel(void *mlx_ptr, void *win_ptr, int x, int y, unsigned long color)
2525
{
26-
printf("pixel sent to mlx: %d, %d\n", (WIN_WIDTH / 2) + x, (WIN_HEIGHT / 2) - y);
27-
mlx_pixel_put(mlx_ptr, win_ptr, (WIN_WIDTH / 2) + x, (WIN_HEIGHT / 2) + y, color);
26+
printf("pixel sent to mlx: %d, %d\n", (WIN_WIDTH / 2) + x, (WIN_HEIGHT / 2) + y);
27+
mlx_pixel_put(mlx_ptr, win_ptr, (WIN_WIDTH / 2) + x, (WIN_HEIGHT / 2) - y, color);
2828
}
2929

3030
void render_and_put_pixel(t_vars *vars, int x, int y, unsigned long point)
3131
{
3232
int final_x;
3333
int final_y;
3434

35-
final_x = (x - vars->anchor_x) * vars->distance;
36-
final_y = (y - vars->anchor_y) * vars->distance;
37-
put_pixel(vars->mlx->mlx_ptr, vars->mlx->win_ptr, final_x, final_y, get_color(point));
38-
printf("anchor point: %d %d\n", vars->anchor_x, vars->anchor_y);
39-
printf("coordinate: %d, %d\n", final_x, final_y);
40-
printf("distance: %d\n", vars->distance);
35+
final_x = (int)((x - vars->anchor_x) * (vars->distance));
36+
final_y = (int)((vars->anchor_y - y) * (vars->distance));
37+
if (get_z(point) > 0)
38+
put_pixel(vars->mlx->mlx_ptr, vars->mlx->win_ptr, final_x, final_y, 0xFFFFFF);
39+
else
40+
put_pixel(vars->mlx->mlx_ptr, vars->mlx->win_ptr, final_x, final_y, 0X0);
41+
printf("x,y coordinate: %d, %d\n", x, y);
42+
printf("map coordinate: %d, %d\n", final_x, final_y);
4143
}
4244

4345
void render_map(t_vars *vars)
4446
{
4547
int i;
4648
int j;
49+
4750
i = 0;
51+
printf("distance: %lf\n", vars->distance);
52+
printf("line count: %d\n", vars->line_count);
53+
printf("line len: %d\n", vars->line_len);
54+
printf("anchor point: %d %d\n", vars->anchor_x, vars->anchor_y);
4855
while(vars->map[i])
4956
{
5057
j = 0;
5158
while (vars->map[i][j] != ULONG_MAX)
5259
{
53-
render_and_put_pixel(vars, i, j, vars->map[i][j]);
60+
render_and_put_pixel(vars, j, i, vars->map[i][j]);
5461
j++;
5562
}
5663
i++;
@@ -59,12 +66,13 @@ void render_map(t_vars *vars)
5966

6067
void fdf(t_vars *vars)
6168
{
62-
// mlx_hook(vars->mlx->mlx_ptr, ON_DESTROY, 0, close_win, vars->mlx);
63-
reset_camera(vars);
69+
mlx_hook(vars->mlx->mlx_ptr, ON_DESTROY, 0, close_win, vars->mlx);
6470
mlx_key_hook(vars->mlx->win_ptr, key_handler, vars);
71+
reset_camera(vars);
72+
render_map(vars);
6573
mlx_loop(vars->mlx->mlx_ptr);
6674
mlx_destroy_display(vars->mlx->mlx_ptr);
67-
free(vars->mlx->mlx_ptr);
75+
//free(vars->mlx->mlx_ptr);
6876
}
6977

7078
void set_map_props(t_vars *vars)
@@ -83,13 +91,18 @@ void set_map_props(t_vars *vars)
8391
vars->anchor_y = i / 2;
8492
}
8593

86-
int main()
94+
int main(int argc, char **argv)
8795
{
8896
t_vars vars;
8997
t_mlx mlx;
9098
char *map_str;
9199

92-
map_str = read_file("test_maps/2x2.fdf");
100+
if (argc != 2)
101+
{
102+
write(STDERR_FILENO, "using: fdf <map>\n", 17);
103+
return (1);
104+
}
105+
map_str = read_file(argv[1]);
93106
if (!map_str)
94107
return (write(1, "file couldn't read", 18), 1);
95108
vars.map = map_string_to_arr_2d(map_str);

inc/fdf.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: obastug <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2025/01/02 11:39:37 by ebabaogl #+# #+# */
9-
/* Updated: 2025/01/04 16:03:42 by obastug ### ########.fr */
9+
/* Updated: 2025/01/07 12:47:31 by obastug ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -32,7 +32,7 @@ typedef struct s_vars
3232
int s_coef;
3333
int a_coef;
3434
int d_coef;
35-
int distance;
35+
double distance;
3636
int line_count;
3737
int line_len;
3838
int anchor_x;

inc/window.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: obastug <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2025/01/02 13:34:08 by ebabaogl #+# #+# */
9-
/* Updated: 2025/01/04 13:52:04 by obastug ### ########.fr */
9+
/* Updated: 2025/01/05 14:28:04 by obastug ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

test_maps/10-2.fdf

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
1 0 0 -1 -1 0 1 1 0 0
2+
-1 0 0 0 1 0 0 0 0 0
3+
-1 1 0 0 -1 1 0 0 0 1
4+
1 -1 0 1 1 -1 0 0 -1 0
5+
1 -1 -1 0 -1 0 0 0 -1 -1
6+
-1 1 0 1 1 0 1 0 0 0
7+
0 -1 -1 0 0 1 0 0 0 1
8+
0 0 0 0 1 0 -1 0 0 0
9+
-1 -1 0 1 -1 0 1 0 0 1
10+
0 0 1 -1 0 -1 0 0 0 0

test_maps/10-70.fdf

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-6 -67 -61 -38 9 -16 -16 32 56 16
2+
27 -63 23 -56 63 10 33 -9 -55 69
3+
-44 -23 -58 12 -55 0 21 -25 27 48
4+
1 41 -38 57 38 -17 -50 -2 -63 7
5+
32 -46 -11 30 10 13 -48 -37 66 -53
6+
-54 34 51 -40 -33 52 -62 -37 -54 -9
7+
-58 40 -30 -9 59 7 -66 -12 -18 41
8+
-50 67 36 13 12 -2 -28 10 -60 -58
9+
3 -27 -52 56 26 -52 59 -31 -48 -6
10+
-59 -30 50 36 5 -11 0 60 -24 -34

0 commit comments

Comments
 (0)