Created
July 11, 2011 00:27
-
-
Save gcr/1075131 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| int k; | |
| double sin() ,cos(); | |
| main(){ | |
| float A=0, B=0, i, j, z[1760]; | |
| char b[1760]; | |
| printf("\x1b[2J"); | |
| for(; ; ) { | |
| memset(b,32,1760); | |
| memset(z,0,7040); | |
| for(j=0; 6.28>j; j+=0.07) { | |
| for(i=0; 6.28 >i; i+=0.02) { | |
| float sini=sin(i), | |
| cosj=cos(j), | |
| sinA=sin(A), | |
| sinj=sin(j), | |
| cosA=cos(A), | |
| cosj2=cosj+2, | |
| mess=1/(sini*cosj2*sinA+sinj*cosA+5), | |
| cosi=cos(i), | |
| cosB=cos(B), | |
| sinB=sin(B), | |
| t=sini*cosj2*cosA-sinj* sinA; | |
| int x=40+30*mess*(cosi*cosj2*cosB-t*sinB), | |
| y= 12+15*mess*(cosi*cosj2*sinB +t*cosB), | |
| o=x+80*y, | |
| N=8*((sinj*sinA-sini*cosj*cosA)*cosB-sini*cosj*sinA-sinj*cosA-cosi *cosj*sinB); | |
| if(22>y&&y>0&&x>0&&80>x&&mess>z[o]){ | |
| z[o]=mess; | |
| b[o]=".,-~:;=!*#$@"[N>0?N:0]; | |
| } | |
| } | |
| } | |
| printf("\x1b[d"); | |
| for(k=0; 1761>k; k++) | |
| putchar(k%80?b[k]:10); | |
| A+=0.04; | |
| B+= 0.02; | |
| } | |
| } |
system("cls");
that gives an error
in windows this donut spins way too slow
to change rotation speed just decrease or increase the increment of A & B in the last 2 lines of code
I just found a quick solution to make it faster on windows (using claude to help me)
and it used fwrite instead of using putchar
here is the full code :
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <windows.h>
int main() {
float A = 0, B = 0;
float i, j;
int k;
float z[1760];
char b[1760];
// Set console to UTF-8 for better performance
SetConsoleOutputCP(CP_UTF8);
printf("\x1b[2J");
for(;;) {
memset(b,32,1760);
memset(z,0,7040);
for(j=0; j < 6.28; j += 0.07) {
for(i=0; i < 6.28; i += 0.02) {
float c = sin(i);
float d = cos(j);
float e = sin(A);
float f = sin(j);
float g = cos(A);
float h = d + 2;
float D = 1 / (c * h * e + f * g + 5);
float l = cos(i);
float m = cos(B);
float n = sin(B);
float t = c * h * g - f * e;
int x = 40 + 30 * D * (l * h * m - t * n);
int y= 12 + 15 * D * (l * h * n + t * m);
int o = x + 80 * y;
int N = 8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n);
if(22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {
z[o] = D;
b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
}
}
}
printf("\x1b[H");
// Use fwrite instead of putchar for better performance
for(k = 0; k < 1760; k++) {
if(k % 80 == 79) {
b[k] = '\n';
}
}
fwrite(b, 1, 1760, stdout);
fflush(stdout);
A += 0.08 ;
B += 0.04 ;
Sleep(30);
}
return 0;
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
use
clangcompiler it's a little better thangccorzig cc.