(给CPP开发者加星标,提升C/C++技能)
来源:知乎
/question/7195
Kuuo
经大家的反馈我把原来的C版本代码改成了C++版本的代码
这次在MAC终端里用g++直接编译的,这是结果:
(MAC上好像显示不出爱心的辣个字符所以我用*替代了)
然后我直接把以前的C版本代码copy过来编译发现也没问题:
(只是把爱心的字符换成了*)
那么我就不造为什么你萌编译不了惹,可能是复制的时候没选全叭
====== 11 30 更新=====
====== 03 09=========
—————————————————
说明一下,
本人大一学生,刚学C语言。目前写的算法可能是有点暴力〒_〒
-------------------------------------------------------
我的这个爱心在搜狗输入法里的表情那里可以找到,是的我就是在那里先打出来然后照着写代码的
—————————————————
#include<stdio.h>
intmain()
{
inti,j,k,l,m;
charc=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行
return0;
}
匿名用户
刚学到malloc时弄的。。代码丢了。。
刘宇波
今天是情人节,嘿嘿。
尝试在心形图中填入文字,使用了两个心形曲线的方程:)
关于这个心形曲线方程,我在我的专栏上写了一个小教程,有兴趣的同学可以看一看:)
情人节,用C++画一个心:)
详细代码可以参考这个repo:liuyubobobo/heart-curve-cplusplus: This repo uses C++ to "draw" a heart shape in your command line. Happy Valentine"s Day!
ycz
emmm,今天是情人节,其实已经有计划要实现这个问题许久了,一直没有时间完成…因为是情人节,所以我抽空完成了这颗心的绘制(๑ơ ₃ ơ)
⋯為什麼會覺得這顆心爛了呢( TДT)
這種仿製鑽石的割面不好看嘛( TДT)
(可視化一下世界法線⋯免得誤會我把這顆心寫爛了(T▽T)
使用c++和部分shader(spv),结合vulkan,绘制出来的,应该不算偏题吧(๑ơ ₃ ơ)ﻌﻌﻌ
渲染框架采用的是pathtracing,而渲染引擎使用的是鄙人写的一个小渲染器(其中的一个分支)
基本原理为求交,混合求交(解析解求交,和隐式表面求交,如距离场)
心形是使用了几个距离场复合而成(部分来自ShaderToy)
渲染材质使用了Lambert和GGX的Specular混合的半金属质感材质…
祝大家情人节快乐。
其次祝大家看到这个可爱的心心之后,会一直一直幸福下去*(*´∀`*)☆
看的人多一点再更新具体步骤ヾ(☆▽☆)