#include<stdio.h>#include<math.h>??float f(float x,float y,float z)?{? ? ?float a=x*x+9.0f/4.0f*y*y+z*z-1;? ? ?return a*a*a-x*x*z*z*z-9.0f/80.0f*y*y*z*z*z;?}float h(float x,float z){? ?for(float y=1.0f;y>=0.0f;y-=0.001f)? ? ?if(f(x,y,z)<=0.0f) ? return y;? ?return 0.0f;}int main(){? ?for(float z=1.5f;z>-1.5f;z-=0.05f){? ? ?for(float x=-1.5f;x<1.5f;x+=0.025f){ ? float v=f(x,0.0f,z); ? if(v<=0.0f){ ? ? float y0=h(x,z); float ny=0.01f; float nx=h(x+ny,z)-y0; float nz=h(x,z+ny)-y0; float nd=1.0f/sqrtf(nx*nx+ny*ny+nz*nz); float d=(nx+ny-nz)*nd*0.5f+0.5f; putchar(".:-=+*#%@"[(int)(d*5.0f)]); ? } ? else ? ? putchar(''); } putchar('\n');? ?}}
求大佬告知哪里錯了?
qq_狂亂貴公子_0
2017-10-19 16:14:24