Go to the documentation of this file.
48 static inline long LRAND() {
return static_cast<long>(
RAND() & 0x7fffffff); }
49 static inline int NRAND(
int n) {
return static_cast<int>(
LRAND() % n ); }
50 static constexpr
double MAXRAND { 2147483648.0 };
59 static constexpr uint8_t
FIX { 12 };
69 {
return static_cast<F_PT>(
static_cast<DBL>(
UNIT) * x ); };
84 using SimiData = std::array<SIMI,5 * MAX_SIMI>;
114 y = A * (1.0 - exp (-y * y * S)) / (1.0 - exp (-S));
124 y = A * (1.0 - exp (-y * y * S)) / (1.0 - exp (-S));
131 SIMI * Cur = &simi_set[offset];
170 if (
Root ==
nullptr) {
183 int i = (
NRAND (4)) + 2;
217 for (i = 0; i <= Fractal->
m_depth + 2; ++i)
285 #if !defined( __GNUC__ ) && !defined(__cplusplus) && !defined(c_plusplus)
292 xo = xo - Simi->
m_fCx;
294 yo = yo - Simi->
m_fCy;
326 if (F->
m_depth && (((x - xo) / 16) != 0.0F) && (((y - yo) / 16) != 0.0F)) {
340 SIMI *Simi =
nullptr;
424 DBL u1 = 3.0 * vv * u;
425 DBL u2 = 3.0 * v * uu;
434 for (
int i = F->
m_nbSimi; i; --i, S++, S1++, S2++, S3++, S4++) {
454 for (
int i = F->
m_nbSimi; i; --i, S++, S1++, S2++, S3++, S4++) {
489 if (
Root !=
nullptr) {
491 free ((
void *)
Root);
static void Transform(SIMI *Simi, F_PT xo, F_PT yo, F_PT *x, F_PT *y)
static void Random_Simis(FRACTAL *F, SimiData &simi_set, int offset, int count)
static constexpr size_t MAX_SIMI
static constexpr uint8_t FIX
std::array< SIMI, 5 *MAX_SIMI > SimiData
static constexpr int8_t MAX_DEPTH_2
static void free_ifs(FRACTAL *Fractal)
static void Trace(FRACTAL *F, F_PT xo, F_PT yo)
IFSPoint * draw_ifs(int *nbPoints)
static constexpr int8_t MAX_DEPTH_4
static constexpr int8_t MAX_DEPTH_5
static F_PT DBL_To_F_PT(DBL x)
static constexpr uint16_t UNIT
static void Draw_Fractal(void)
static DBL Gauss_Rand(DBL c, DBL A, DBL S)
static constexpr double MAXRAND
static constexpr int8_t MAX_DEPTH_3
void init_ifs(int width, int height)
static DBL Half_Gauss_Rand(DBL c, DBL A, DBL S)
static void free_ifs_buffers(FRACTAL *Fractal)