-
Notifications
You must be signed in to change notification settings - Fork 0
/
error.c
89 lines (84 loc) · 2.58 KB
/
error.c
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* error.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: sel-hano <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/07/25 03:07:57 by sel-hano #+# #+# */
/* Updated: 2023/07/27 00:20:42 by sel-hano ### ########.fr */
/* */
/* ************************************************************************** */
#include "fractol.h"
void ft_error(int ac, char *av[])
{
if (ac < 2 || !av[1][0])
{
write(1, "ERROR USAGE: ./fractol <name_of_fractal>", 40);
exit(EXIT_FAILURE);
}
else if (ac != 2 && !ft_strcmp("mandelbrot", av[1]))
{
write(1, "ERROR: mandelbrot have no params", 32);
exit(EXIT_FAILURE);
}
else if (ac != 2 && !ft_strcmp(av[1], "burningship"))
{
write(1, "ERROR USAGE: burningship have no params", 40);
exit(EXIT_FAILURE);
}
else if (ft_strcmp("mandelbrot", av[1])
&& ft_strcmp("julia", av[1])
&& ft_strcmp("burningship", av[1]))
{
write(1, "ERROR USAGE: ./fractol <name_of_fractal>", 40);
exit(EXIT_FAILURE);
}
}
void zoom_out(t_data *init)
{
init->min_x /= init->zoom_factor;
init->max_x /= init->zoom_factor;
init->min_y /= init->zoom_factor;
init->max_y /= init->zoom_factor;
init->min_x -= init->center_x;
init->max_x -= init->center_x;
init->min_y -= init->center_y;
init->max_y -= init->center_y;
init->iterations -= 10;
}
void zoom_in(t_data *init)
{
init->min_x += init->center_x;
init->max_x += init->center_x;
init->min_y += init->center_y;
init->max_y += init->center_y;
init->min_x *= init->zoom_factor;
init->max_x *= init->zoom_factor;
init->min_y *= init->zoom_factor;
init->max_y *= init->zoom_factor;
init->iterations += 10;
}
char *mini_atod(t_data *init, const char *str)
{
while (*str == ' ' || (*str >= '\t' && *str <= '\r'))
str++;
if (*str == '-')
{
init->negative = -1;
str++;
}
else if (*str == '+')
str++;
while (*str >= '0' && *str <= '9')
{
init->result = init->result * 10.0 + (*str - '0');
str++;
}
if (*str != '.')
{
write(1, "BAD ARGUMENTS PLEASE WRITE NUMBERS OF TYPE DOUBLE\n", 50);
exit(EXIT_FAILURE);
}
return ((char *)str);
}