用c++写 爱心图案
绘制爱心曲线
现代数学的一个有趣的证明是 Georg Cantor 证明了有理数是可枚举的。在这篇博客中,我们将通过编程绘制一个简单而美丽的数学图形:爱心曲线。
爱心曲线代码
//爱心曲线 (x^2 + y^2 -a)^3 - x^2 * y^3 = 0
#include <iostream>
#include <cmath>
using namespace std;
int main(){
//画板大小
double a=1;
//绘图边界
double bound=1.3 * sqrt(a);
//变化步长
double step=0.05;
//逐层扫描
for(double y=bound;y>-bound;y-=step){
for(double x=-bound;x<bound;x+=0.5*step){
double rs=pow(pow(x,2)+pow(y,2)-a,3)-pow(x,2)*pow(y,3);
if(rs<=0){
cout << "*";
}
else{
cout << " ";
}
}
cout << endl;
}
return 0;
}
解释
爱心曲线的方程是 [ (x^2 + y^2 - a)^3 - x^2 \cdot y^3 = 0 ]。这个方程描述了一个在二维平面上的爱心形状。
这段代码是用来绘制爱心曲线的,下面是对其中的参数和逻辑的解释:
double a=1;: 这是爱心曲线方程中的参数,表示控制爱心的大小。你可以尝试改变这个值,看看对曲线形状有什么影响。比如,将a设置为不同的正数或零,观察爱心曲线的形状。double bound=1.3 * sqrt(a);: 这是绘图边界,用于确定绘图范围。它取决于参数a的值,以确保整个爱心曲线都在绘图范围内。你可以调整1.3这个系数来改变绘图边界的大小。double step=0.05;: 这是变化步长,表示在绘图时在 x 和 y 方向上每次变化的步长。较小的步长会产生更精细的曲线,但也会增加计算量。你可以尝试调整这个值,看看对曲线的细节有什么影响。for(double y=bound;y>-bound;y-=step): 外层循环是在 y 方向上进行扫描,从绘图边界的正上方开始,逐步向下扫描。for(double x=-bound;x<bound;x+=0.5*step): 内层循环是在 x 方向上进行扫描,从绘图边界的最左侧开始,逐步向右扫描。double rs=pow(pow(x,2)+pow(y,2)-a,3)-pow(x,2)*pow(y,3);: 这是计算爱心曲线方程的值,根据结果判断当前点是否在爱心曲线上。如果rs的值小于等于 0,则当前点在爱心曲线上。cout << "*";: 如果当前点在爱心曲线上,输出*,表示该点在爱心的形状内;否则输出空格。
你可以通过调整这些参数,观察绘图结果的变化,以更好地理解这个爱心曲线的生成过程。
输出结果

用c++写 爱心图案的更多相关文章
- C语言控制台打印3D爱心图案
非常多程序猿都认为自己的编程工作十分的鼓噪乏味.一整天面对的都是一些写不完的代码和改不完的Bug.今天我们要给大家分享一些有趣的C语言代码,也许能够为你无聊的工作带来一丝乐趣. 这些代码能够完毕几个不 ...
- 前端Tips#3 - 简写的 border-radius 100% 和 50% 是等效的
本文同步自 JSCON简时空 - 技术博客,点击阅读 视频讲解 视频地址 文字讲解 1.先讲结论 border-radius 这个 css 属性大家应该使用得非常娴熟,现实中用到的场景基本都是四个圆角 ...
- 耗时一个月上架了一款微信小程序,赚了2022年的第一笔副收入
今天不谈技术,只谈经历. 前戏 相信有很多的程序员都有一个产品梦,希望有一款属于自己产品.毕竟工作中遇到的有些"脑残"的产品经理不是一个两个,最后不得不因为"技术服务于业 ...
- web前端炫酷实用的HTML5应用和jQuery插件
又开始了新的一天,我们也将继续为大家分享许多优秀的HTML5应用和jQuery插件,作为前端开发者来说,这些资源可以帮助你在项目开发上派上用场.下面一起来看看这些炫酷而实用的HTML5应用和jQuer ...
- 007-变量的作用域和LED点阵
变量 一.局部变量和全局变量 局部变量:函数内申明的变量,只在函数内有效. 全局变量:函数外部申明的变量.一个源程序文件有一个或者多个函数,全局变量对他们都起作用. 备注:全局变量有副作用,降低了函数 ...
- 2017.12.1 如何用java写出一个菱形图案
上机课自己写的代码 两个图形原理都是一样的 1.一共有仨个循环 注意搞清楚每一层循环需要做的事情 2.第一层循环:是用来控制行数 3.第二层循环控制打印空格数 4.第三层循环是用来循环输出星星 imp ...
- 六行python代码的爱心曲线
前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...
- 【C语言】用C语言输出“心形”图案
在你们的世界里,是不是觉得程序猿一点浪漫都不懂?其实不是的,程序猿的世界也是很浪漫滴! 傻瓜版 int main() { printf("❤"); ; } 高级版 //版本一:单个 ...
- 使用原生JS,实现鼠标点击爱心效果 !!!
使用原生JS,实现鼠标点击爱心效果 !!! 引言: 在很多时候我们都需要实现鼠标点击出现图案或者文字这样的效果,对于用户而言,这样的体验是很极致的.其实实现起来也很简单,下面一起来学习一下吧.文末附上 ...
- Quartz2D 编程指南(二)变换、图案、阴影
概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 5.变换 简介 Quartz 2D ...
随机推荐
- tensorboard可视化点云
tensorboard可视化点云 用 tensorboard 自带的 add_mesh 方法:支持可视化点云和网格,参考链接: tensorflow 网站的tensorboard pytorch 网站 ...
- 起风了,NCC 云原生项目孵化计划
时间回到 2016 年,彼时 .NET Core 1.0 刚刚发布 1.0 版本,我跟几位好友共同发起 .NET Core 中文学习组(.NET Core China Studying Group)和 ...
- 23集训 Day4 数论
快速幂 定义 快速幂,是一个在 \(\Theta(\log n)\) 的时间内计算 \(a^n\) 的小技巧,而暴力的计算需要 \(\Theta(n)\) 的时间. 解释 \[\because a^{ ...
- Opencv系列之一:简介与基本使用
1 Opencv简介 Opencv是计算机视觉中经典的专用库,其支持多语言,跨平台,功能强大.Opencv-Python为Opencv提供了Python接口,使得使用者在Python中能够调用C/C+ ...
- Emit 实体绑定源码开源,支持类以及匿名类绑定(原创)
动态实体绑定 主要有以下两种 1.表达式树构建委托 2.Emit构建委托 根据我的经验 Emit 代码量可以更少可以很好实现代码复用 Emit实践开源项目地址跳转 https://www.cnblog ...
- 一篇了解springboot3请求参数种类及接口测试
SpringBoot3数据请求: 原始数据请求: //原始方式 @RequestMapping("/simpleParam") public String simpleParam( ...
- Acwing76场周赛
题目链接 这次还是只做出来两道题,前两题都挺简单的,注意第二题需要开long long不开会wa,代码粘上来,以后可能会看吧 第一题 #include<iostream> #include ...
- [转]深入HBase架构解析
HBase架构讲解非常清晰的一篇文章,转自 http://www.blogjava.net/DLevin/archive/2015/08/22/426877.htmlhttp://www.blogja ...
- Python 利用pandas和matplotlib绘制双柱状图
在数据分析和可视化中,常用的一种图形类型是柱状图.柱状图能够清晰地展示不同分类变量的数值,并支持多组数据进行对比.本篇文章将介绍如何使用Python绘制双柱状图. 准备工作 在开始绘制柱状图之前,需要 ...
- 开源模型 Zephyr-7B 发布——跨越三大洲的合作
最近我们刚刚发布了新的开源模型 Zephry-7B,这个模型的诞生离不开全球三大洲开源社区的协作 ️. 我们的 CSO Thomas 录了一个视频介绍了它的起源故事: 就在几个月前,巴黎的一个新团队发 ...