c++心形代码_如何用 C 语言画心形?

(给CPP开发者加星标,提升C/C++技能)

来源:知乎

www.zhihu.com/question/20187195

Kuuo

经大家的反馈我把原来的C版本代码改成了C++版本的代码

这次在MAC终端里用g++直接编译的,这是结果:

618ac512faa1b312b6c066622870c048.png

(MAC上好像显示不出爱心的辣个字符所以我用*替代了)

然后我直接把以前的C版本代码copy过来编译发现也没问题:

8f8bb421ba279decd686b29f1e756d80.png

(只是把爱心的字符换成了*)

那么我就不造为什么你萌编译不了惹,可能是复制的时候没选全叭 
======2015 11 30  更新=====

======2015 03 09=========
—————————————————
说明一下,

本人大一学生,刚学C语言。目前写的算法可能是有点暴力〒_〒
-------------------------------------------------------
我的这个爱心在搜狗输入法里的表情那里可以找到,是的我就是在那里先打出来然后照着写代码的
—————————————————

5814291214e29ba2dbfdabc60556eb42.png
#include 

int main(){
    int  i, j, k, l, m; 
    char c=3;   //ASCII码里面 3 就是一个字符小爱心 

    for (i=1; i<=5; i++)                printf(" ");   //开头空出5行 

    for (i=1; i<=3; i++) {  //前3行中间有空隙分开来写 
        for (j=1; j<=32-2*i; j++)       printf(" ");    //左边的空格,每下一行左边的空格比上一行少2个 //8*n-2*i 
        for (k=1; k<=4*i+1; k++)        printf("%c", c);//输出左半部分字符小爱心 
        for (l=1; l<=13-4*i; l++)       printf(" ");    //中间的空格,每下一行的空格比上一行少4个 
        for (m=1; m<=4*i+1; m++)        printf("%c", c);//输出右半部分字符小爱心
        printf(" ");       //每一行输出完毕换行 
    }

    for (i=1; i<=3; i++) {  //下3行中间没有空格 
        for (j=1; j<=24+1; j++)         printf(" ");    //左边的空格 //8*(n-1)+1
        for (k=1; k<=29; k++)           printf("%c", c);//输出字符小爱心
        printf(" ");       //每一行输出完毕换行
    }

    for (i=7; i>=1; i--) {  //下7行 
        for (j=1; j<=40-2*i; j++)       printf(" ");    //左边的空格,每下一行左边的空格比上一行少2个//8*(n+1)-2*i
        for (k=1; k<=4*i-1; k++)        printf("%c", c);//每下一行的字符小爱心比上一行少4个(这个循环是i--) 
        printf(" ");       //每一行输出完毕换行
    }

    for (i=1; i<=39; i++)               printf(" ");    //最后一行左边的空格 
    printf("%c ", c);      //最后一个字符小爱心 

    for (i=1; i<=5; i++)                printf(" ");   //最后空出5行 

    return 0;
}

匿名用户

f3502976bc4a443161fc8d5abf5b5d95.png

刚学到malloc时弄的。。代码丢了。。

刘宇波

今天是情人节,嘿嘿。

尝试在心形图中填入文字,使用了两个心形曲线的方程:)

关于这个心形曲线方程,我在我的专栏上写了一个小教程,有兴趣的同学可以看一看:)
情人节,用C++画一个心:)

83a3d6bbe19ea928bc8162f80f168afd.png
6f4da9433cb701770c4bc979e1f8535b.png

详细代码可以参考这个repo:liuyubobobo/heart-curve-cplusplus: This repo uses C++ to "draw" a heart shape in your command line. Happy Valentine's Day!

ycz

emmm,今天是情人节,其实已经有计划要实现这个问题许久了,一直没有时间完成…因为是情人节,所以我抽空完成了这颗心的绘制(๑ơ ₃ ơ)

7186dcee316abca931ae57b54caae888.png
8a96cc24eb9f74e64c2050ee3aad80c3.png
23c46e864a56d5e3b19e63514d91d306.png
26334683a1ac20359d64697b448bdd3a.png

⋯為什麼會覺得這顆心爛了呢( TДT)
這種仿製鑽石的割面不好看嘛( TДT)

8c8e7da7572855867279fcccd8122f06.png
e8657ef478c7dc30b5421ed0bf571be6.png
87eba0f5217b87e3c470cf1d587c924b.png

(可視化一下世界法線⋯免得誤會我把這顆心寫爛了(T▽T)

使用c++和部分shader(spv),结合vulkan,绘制出来的,应该不算偏题吧(๑ơ ₃ ơ)ﻌﻌﻌ
渲染框架采用的是pathtracing,而渲染引擎使用的是鄙人写的一个小渲染器(其中的一个分支)
基本原理为求交,混合求交(解析解求交,和隐式表面求交,如距离场)
心形是使用了几个距离场复合而成(部分来自ShaderToy)
渲染材质使用了Lambert和GGX的Specular混合的半金属质感材质…

祝大家情人节快乐。
其次祝大家看到这个可爱的心心之后,会一直一直幸福下去*(*´∀`*)☆

看的人多一点再更新具体步骤ヾ(☆▽☆)

推荐阅读

(点击标题可跳转阅读)

常用排序算法总结(1)

常用排序算法总结(2)

【别漏了相关文章,这里的标题字号用 12 号】

看完本文有帮助?请分享给更多人

关注「CPP开发者」加星标,提升C/C++技能

faa7899633d709c6797bce34c1609926.png

喜欢就点一下「好看」呗~