Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <time.h>
- #define WIDTH 100.0
- #define HEIGHT 115.0
- #define WLOWER -2.0
- #define WUPPER 2.0
- #define HLOWER -2.0
- #define HUPPER 2.0
- #define ZOOMREAL -1.2
- #define ZOOMIMAG -0.8
- #define SPEED 0.99
- #define MINITER 50
- #define MAXFRAMES 3
- char ascii[20]= "`.,-^*+;?$&@#";
- char calcPoint(double* real, double* im, double* realZ, double* imZ, int iter){
- if(iter == 0) { /* BOUND CHECKER */
- return ' '; /* DRAW ASCII VAL */
- }
- if((*real >2.0)||(*real < -2.0)){
- return ascii[iter%13];
- }
- if((*im >2.0)||(*im < -2.0)){
- return ascii[iter%13];
- }
- //printf("%lf %lf\n", *real, *im);
- double newReal = (*real * *real) - (*im * *im) + *realZ;
- double newImag = (2.0 * *real * *im)+*imZ;
- return calcPoint (&newReal, &newImag, realZ, imZ, iter-1);
- }
- void calcArray(double* wLower, double* wUpper, double* hLower, double* hUpper, int iter){
- for(int i = 0; i < WIDTH; i++){
- for(int j = 0; j < HEIGHT; j++){
- double temprealZ;
- double tempimZ;
- temprealZ =*wUpper-*wLower;
- tempimZ = *hUpper-*hLower;
- temprealZ = temprealZ/WIDTH;
- tempimZ = tempimZ/HEIGHT;
- temprealZ = (double)i*fabs(temprealZ)+*wLower;
- tempimZ = *hUpper-(double)j*fabs(tempimZ);
- double temprealC = temprealZ;
- double tempimC = tempimZ;
- double* realZ = &temprealZ;
- double* imZ = &tempimZ;
- double* realC = &temprealC;
- double* imC = &tempimC;
- char mandelPlot = calcPoint(realZ, imZ, realC, imC, iter);
- printf("%c", mandelPlot);
- }
- printf("\n");
- }
- }
- void calcBounds(double* wLower, double* wUpper, double* hLower, double* hUpper){
- *wLower= (ZOOMREAL+*wLower*SPEED)/2.0; // IMAGE INCREASES SPEED % IN SIZE
- *wUpper=(ZOOMREAL+*wUpper*SPEED)/2.0; // WITH EVERY ITERATION
- *hLower=(ZOOMIMAG+*hLower*SPEED)/2.0; // EVERY DIRECTION IS SCALED
- *hUpper=(ZOOMIMAG+*hUpper*SPEED)/2.0; // SPEED % INDIVIDUALLY
- }
- int main(){
- double wLower = WLOWER;
- double wUpper = WUPPER;
- double hLower = HLOWER;
- double hUpper = HUPPER;
- int currIter = MINITER;
- int frameCount = 0;
- while(frameCount < MAXFRAMES){
- calcArray(&wLower, &wUpper, &hLower, &hUpper, currIter);
- calcBounds(&wLower,&wUpper,&hLower,&hUpper);
- currIter++;
- frameCount++;
- printf("break\n");
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment