输出一个渐变桃心

#include<stdio.h>
#include<math.h>

float f(float x,float y,float z)
{
    float a;
    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)
{
    float y;
    for(y=1.0f;y>=0.0f;y-=0.001f)
    if(f(x,y,z)<=0.0f)
    return y;
    return 0.0f;
}
int main()
    {
       float z,x,v,y0,ny,nx,nz,nd,d;
       for(z=1.5f;z>-1.5f;z-=0.05f)
       {
           for(x=-1.5f;x<1.5f;x+=0.025f)
           {
               v=f(x,0.0f,z);
               if(v<=0.0f)
               {
                   y0=h(x,z);
                   ny=0.01f;
                   nx=h(x+ny,z)-y0;
                   nz=h(x,z+ny)-y0;
                   nd=1.0f/sqrtf(nx*nx+ny*ny*ny+nz*nz);
                   d=(nx+ny-nz)*nd*0.5f+0.5f;
                   putchar(".:-=+8#%@"[(int)(d*5.0f)]);
               }
               else
               putchar(' ');
           }
           putchar('\n');
       }
       return 0;

    }

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值