42/fract-ol.git
19 months agoUpdate Libft to resolve an issue with 0 argument
Lukas Jiriste [Thu, 25 Apr 2024 09:18:54 +0000 (11:18 +0200)]
Update Libft to resolve an issue with 0 argument

19 months agoFix halo by tuning the fractal parameters
Lukas Jiriste [Thu, 25 Apr 2024 09:15:59 +0000 (11:15 +0200)]
Fix halo by tuning the fractal parameters

I don't really know why the halo still lived but changing the
the number from which to count seems to resolve it.

19 months agoAdd tags file to .gitignore
Lukas Jiriste [Thu, 25 Apr 2024 07:51:18 +0000 (09:51 +0200)]
Add tags file to .gitignore

19 months agoFuse the mandelbrot and julia set structures
Lukas Jiriste [Thu, 25 Apr 2024 07:45:11 +0000 (09:45 +0200)]
Fuse the mandelbrot and julia set structures

These had different structures because of the anticipation of
differences between input for these fractals. This however makes
parsing more difficult. Having a single structure with fields that
may not be utilized by every fractal seems to be the more reasonable
option.

19 months agoFix argument parsing so as not to ignore input
Lukas Jiriste [Thu, 25 Apr 2024 07:38:57 +0000 (09:38 +0200)]
Fix argument parsing so as not to ignore input

The -f option did not work, because the fractal was set to mandelbrot
after the option parsing. Other options could have also been affected.

19 months agoFix halo around the fractals
Lukas Jiriste [Thu, 25 Apr 2024 07:32:56 +0000 (09:32 +0200)]
Fix halo around the fractals

This halo is caused by returning 0 instead of using the proper formula
for points too far from origin. Setting the return value for such
points to the value of on the inner border of the halo fixes this.

19 months agoAdd color shift in time
Lukas Jiriste [Thu, 18 Apr 2024 09:50:33 +0000 (11:50 +0200)]
Add color shift in time

For this I had to create new matrix that holds the same info as did
the image. The image is then constructed from this matrix by adding
a value that changes in time.

19 months agoFix centering and movement for small windows
Lukas Jiriste [Thu, 18 Apr 2024 07:57:14 +0000 (09:57 +0200)]
Fix centering and movement for small windows

Centering was calculated based on default values hence it was wrong for
different sizes of window. Solved by moving the calculation after
argument parsing.
Movement was impossible for small windows, as the calculated movement
was smaller than a pixel which got rounded to 0. Solved by assigning
signum of movement when 0 is calculated.

19 months agoAdd option to select the fractal to draw
Lukas Jiriste [Wed, 10 Apr 2024 12:07:18 +0000 (14:07 +0200)]
Add option to select the fractal to draw

19 months agoFix rectangular windows, add argument parsing
Lukas Jiriste [Wed, 10 Apr 2024 11:30:03 +0000 (13:30 +0200)]
Fix rectangular windows, add argument parsing

When height and width were not the same, the program would crash
because the access to a matrix had rows and columns switched.
 (image x axis corresponds with column number of matrix)
Add 4 options for argument parsing:
 height
 width
 (level of) detail
 (maximum) undersample

19 months agoUpdate Libft for the ft_isint function
Lukas Jiriste [Wed, 10 Apr 2024 11:29:06 +0000 (13:29 +0200)]
Update Libft for the ft_isint function

19 months agoAdd the bare bones of parsing.
Lukas Jiriste [Wed, 10 Apr 2024 10:20:50 +0000 (12:20 +0200)]
Add the bare bones of parsing.

19 months agoUpdate minilibx so that it works properly on close
Lukas Jiriste [Wed, 10 Apr 2024 10:16:11 +0000 (12:16 +0200)]
Update minilibx so that it works properly on close

When closing the window using the close button, valgrind makes a fuss
because minilibx checks the memory location it just cleared.
In this update this is rectified and closing using the window
button does not raise any problem.

22 months agoRefactor pixel handling functions from main.c
Lukas Jiriste [Fri, 19 Jan 2024 13:58:48 +0000 (14:58 +0100)]
Refactor pixel handling functions from main.c

22 months agoHardcode threshold value for mandelbrot and tricorn
Lukas Jiriste [Fri, 19 Jan 2024 12:45:58 +0000 (13:45 +0100)]
Hardcode threshold value for mandelbrot and tricorn

22 months agoAdd tricorn fractal, move fractals to separate file
Lukas Jiriste [Fri, 19 Jan 2024 11:02:41 +0000 (12:02 +0100)]
Add tricorn fractal, move fractals to separate file

22 months agoRefactor mandelbrot const vars to setting variable
Lukas Jiriste [Thu, 18 Jan 2024 16:18:46 +0000 (17:18 +0100)]
Refactor mandelbrot const vars to setting variable

Add settings (t_set set) as a member to t_session.
It is constructed as a union of settings type of each fractal, which may
prove useless if the settings for mandelbrot (t_set_man)
cover all the needs of other fractals. This seems unlikely however.
Add t_set_jul as a placeholder for the concept to be illustrative.

22 months agoMake it so move only calculates the new area
Lukas Jiriste [Thu, 18 Jan 2024 10:01:54 +0000 (11:01 +0100)]
Make it so move only calculates the new area

Only the area that has not been displayed before the move needs to be
calculated. The area of the window that does not move outside the window
need not be recalculated. Implement this functionality.

22 months agoAdd undersample_max as variable
Lukas Jiriste [Thu, 18 Jan 2024 07:48:51 +0000 (08:48 +0100)]
Add undersample_max as variable

This makes it possible to choose maximum undersample at runtime
(e.g. pass it as argument).

22 months agoChange the code without much to show for it
Lukas Jiriste [Wed, 17 Jan 2024 14:02:12 +0000 (15:02 +0100)]
Change the code without much to show for it

Change the code so that adding partial picture construction is easier in
the future. Changes also support drawing in worse resolution.
Needs refactoring of main.c and possible checking the header files.

22 months agoAdd check to mandelbrot to for visual correctness
Lukas Jiriste [Wed, 17 Jan 2024 09:34:55 +0000 (10:34 +0100)]
Add check to mandelbrot to for visual correctness

Coordinates too far from the fractal had incorrect color.

22 months agoAdd zoom capability through keypad +/- keys
Lukas Jiriste [Wed, 17 Jan 2024 09:34:00 +0000 (10:34 +0100)]
Add zoom capability through keypad +/- keys

22 months agoAdd the ability to move with WASD and arrow keys
Lukas Jiriste [Tue, 16 Jan 2024 13:31:51 +0000 (14:31 +0100)]
Add the ability to move with WASD and arrow keys

22 months agoRepair Makefile after previous commit
Lukas Jiriste [Tue, 16 Jan 2024 09:55:23 +0000 (10:55 +0100)]
Repair Makefile after previous commit

22 months agoChange Makefile to download submodules
Lukas Jiriste [Tue, 16 Jan 2024 09:38:15 +0000 (10:38 +0100)]
Change Makefile to download submodules

Add target %/Makefile to Makefile and add Makefiles of subprojects as
prerequisites for compilation. This ammends the situation when after git
clone, the submodule folders are empty nad compilation fails because
header files are missing.

22 months agoUpdate Libft
Lukas Jiriste [Tue, 16 Jan 2024 09:22:22 +0000 (10:22 +0100)]
Update Libft

Update Libft (not needed?).
Change Makefile to reflect changes in Libft structure.
Add debug target to Makefile which compiles with -g and propagates to
Libft.

2 years agoAdd general function for constructing Julia sets
Lukas Jiriste [Tue, 5 Dec 2023 19:20:21 +0000 (20:20 +0100)]
Add general function for constructing Julia sets

This function has different prototype that mandelbrot function so some
work should be done about unifying it for easier swapping of the two.

This function may be used to construct specialized functions.

2 years agoSplit event handling from main. Add color smoothing.
Lukas Jiriste [Tue, 5 Dec 2023 18:52:17 +0000 (19:52 +0100)]
Split event handling from main. Add color smoothing.

Move event handling (and no_event_handle) functions to
event_handling.c.
Add smoothing to mandelbrot output.

2 years agoAdd 42 header to each .c and .h file
Lukas Jiriste [Sat, 11 Nov 2023 17:51:58 +0000 (18:51 +0100)]
Add 42 header to each .c and .h file

2 years agoGeneralize palette construction
Lukas Jiriste [Sat, 11 Nov 2023 17:44:45 +0000 (18:44 +0100)]
Generalize palette construction

Add general approach to constructing palletes with "equidistant
partitioning" of colors. Change mandelbrot in main accordingly, but it
should probably be separated to another file (fractals.c?)
Remove (comment out) enhancement of computed fractal when no event
happens, because it causes valgrind to report issues. Further
investigation needed.

2 years agoAdd hook to make window closeable by close button
Lukas Jiriste [Sat, 11 Nov 2023 17:25:16 +0000 (18:25 +0100)]
Add hook to make window closeable by close button

2 years agoAdd clean and fclean rules to Makefile
Lukas Jiriste [Sat, 11 Nov 2023 16:49:20 +0000 (17:49 +0100)]
Add clean and fclean rules to Makefile

2 years agoUpdate Libft for reliable make.
Lukas [Wed, 8 Nov 2023 09:21:23 +0000 (10:21 +0100)]
Update Libft for reliable make.

2 years agoFinish the foundation, provide basic functionality
Lukas [Wed, 8 Nov 2023 09:14:55 +0000 (10:14 +0100)]
Finish the foundation, provide basic functionality

Make structural changes to project for easier handling and addition of
palettes and fractals.
Introduce the executable actually working. It draws mandelbrot set.
Add zoom in/out functionality.
Introduce some color issues (needs investigation).

2 years agoSave work down so far for access from elsewhere
Lukas [Fri, 3 Nov 2023 10:36:35 +0000 (11:36 +0100)]
Save work down so far for access from elsewhere

This should not really be a commit, but I can access it from another
location this way. The changes will be listed in the following commit
hopefully.

2 years agoMake program print Mandelbrot set, close on ESC
Lukas [Thu, 2 Nov 2023 10:19:40 +0000 (11:19 +0100)]
Make program print Mandelbrot set, close on ESC

2 years agoAdd .gitignore
Lukas Jiriste [Wed, 1 Nov 2023 12:41:04 +0000 (13:41 +0100)]
Add .gitignore

Add .gitingore to this project and update Libft to also include
.gitignore file in order not to disturb the git status command's results
when run on built project.

2 years agoCreate this repo, Makefile and test program
Lukas Jiriste [Fri, 27 Oct 2023 13:02:59 +0000 (15:02 +0200)]
Create this repo, Makefile and test program

This program creates Hello world window.