Changed ALL function and file names to comply with assignment and added additional (Doxygen and normal) comments to mark which version is which

Doxygen comments are shown when hovering over function in the IDE
This commit is contained in:
Nikola
2026-07-03 15:03:55 +02:00
parent 97a8d40771
commit 8546217cf3
6 changed files with 56 additions and 17 deletions
-51
View File
@@ -1,51 +0,0 @@
#include "tricorn.h"
static const float convergenceLimit = 2.0f; // Mandelbrot set limit
static unsigned converge(float complex position,unsigned n);
void tricorn(float complex start, size_t width, ssize_t height, float res, unsigned n, _Bool color, unsigned char* img){
// Absolute height for iteration purposes
height = height < 0 ? height*-1 : height;
unsigned bytesPerColor = color ? 3 : 1;
// Simple iteration over every pixel in the picture
for(size_t i = 0; i < width; i++){
for(ssize_t j = 0; j < height; j++){
unsigned value = converge(start + (i*res - I*j*res),n+1);
// Pixel value position in the output array
size_t position = (j*width +i) * bytesPerColor;
if(!color){ // Grayscale colors as specified by the assignment r = g = b
img[position] = value;
}
else{ // Temporary colors with random multipliers
img[position] = ((value*3) % 255);
img[position + 1] = ((value*2) % 255) ;
img[position + 2] = ((value*5) % 255);
}
}
}
}
// Iterative application of the equation given by the assignment
static unsigned converge(float complex position,unsigned n){
complex float result = 0;
for(unsigned i = 0; i < n; i++){
// Detection of unbounded behaviour
// If the magnitude of the result vector is greater than the convergence limit, we know that the function will grow unbounded
// Current convergence limit taken from mandelbrot set
if(sqrtf(powf (crealf(result),2)+powf(cimagf(result),2)) > convergenceLimit)
return 255-4*(i % 64);
// Application of the given complex equation with m = 2
result = cpowf(conjf(result),2) + position;
}
return 0;
}