笛卡尔心形线

news2024/7/6 17:33:08

目录

一、前言

二、使用 EasyX 绘制笛卡尔心形线



一、前言

"谁能告诉我,这是什么?"

"爱心呗"

"哼,爱心,我们叫它心形线。关于心形线呢,还有一个美丽的故事,是跟笛卡尔有关。说笛卡尔和美丽的瑞典公主相爱了,因为他们之间相差了三十多岁,国王知道了呢,就极力地反对,并把笛卡尔流放了。笛卡尔在临死之前写给公主的情书当中写了这样一条公式 r = a(1 - sin\theta),公主接到这封情书的时候,笛卡尔已经死在了狱中,公主也一生未嫁,而这个公式解出来的图形,就是著名的心形线。

是不是很浪漫啊?嗯?哼,但真相远远要比童话残酷。这个故事还有另外一个版本,说是公主根本就不在乎笛卡尔,笛卡尔也不是死于疾病,而是死于背叛。所以究竟是相信真相,还是童话,是你们每个人的选择,就像用什么方式解开这道题,也是你们的选择一样。"


二、使用 EasyX 绘制笛卡尔心形线

知道极坐标后,就知道该曲线对应的参数方程,即已知曲线 \rho = \rho(\theta) = a(1 - sin\theta),则对应的参数方程为

\begin{cases} x = \rho(\theta)cos\theta = a(1-sin\theta)cos\theta \\ y = \rho(\theta)sin\theta = a(1-sin\theta)sin\theta \end{cases}

#include <easyx.h>
#include <stdio.h>
#include <math.h>
​
#define WIDTH 640
#define HEIGHT 480
#define PI 3.1415926
#define ONE_DEGREE PI / 180
​
void cardioid(int a)
{
    setorigin(WIDTH / 2, HEIGHT / 2);  // 将逻辑坐标的原点移到窗体中心
    setaspectratio(1, -1);  // 使 y 轴向上为正
    setlinecolor(RED);  // 设置画线颜色
    setlinestyle(PS_SOLID, 3);  // 设置画线样式
​
    int x1, y1, x2, y2;
    double theta = 0.0;
    while (theta <= 2 * PI)
    {
        x1 = a * (1 - sin(theta)) * cos(theta);
        y1 = a * (1 - sin(theta)) * sin(theta);
        theta += ONE_DEGREE;
        x2 = a * (1 - sin(theta)) * cos(theta);
        y2 = a * (1 - sin(theta)) * sin(theta);
        line(x1, y1, x2, y2);
    }
}
​
int main()
{
    initgraph(WIDTH, HEIGHT);
    
    cardioid(100);
​
    getchar();
    closegraph();
    return 0;
}

《隐秘的角落》推荐~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/584453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ六种工作模式01

01: Work Queue工作队列模式 //接口所有的属性都是静态常量属性 public interface RabbitContent {//队列String QEUEU_HELLO "hello";String QUEUE_WORKING "working";String QUEUE_BAIDU "baidu";String QUEUE_SINA "sina";//交换机…

【操作系统笔记】南京大学jyy老师

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了操作系统学习&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于南京大学操作系统jyy老师课程进行的&#xff0c;每个知识点的修正…

Windows系统内核溢出漏洞提权

目录 Windows内核溢出漏洞原理 溢出漏洞简介 什么是缓冲区 缓冲区溢出 缓冲区溢出目的 Windows内核溢出漏洞利用流程 提权实战思路 手工提权测试 辅助提权 EXP如何寻找 使用MSF提权 关于提权时可能遇到的问题 如果提权的时候发现无法执行命令的话&#xff0c;可以上…

零售EDI:如何与Transgourmet 建立EDI连接?

Transgourmet是一家总部位于法国的批发和供应商公司&#xff0c;为酒店、餐馆和快餐行业提供食品和非食品产品。在欧洲拥有广泛的市场覆盖&#xff0c;经营范围涵盖法国、德国、奥地利、波兰、罗马尼亚和瑞士等国家。 Transgourmet EDI 需求分析 1.传输协议 Transgourmet选择…

一文看懂企业性能测试,指标解析+代码演示,简洁易懂!

目录 前言&#xff1a; 一、性能测试流程简介 二、性能测试指标分析 三、性能测试代码演示 四、性能测试结论 五、总结 前言&#xff1a; 性能测试在企业应用中是非常重要的一环&#xff0c;它可以帮助企业对自身的应用和系统进行全面评估&#xff0c;提高其性能、稳定性…

simbertmilvus实现相似句检索

朋友们&#xff0c;simbert模型是一个较好的相似句检索模型&#xff0c;但是在大规模检索中&#xff0c;需要实现快速检索&#xff0c;这个时候离不开milvus等向量检索库&#xff0c;下面用实际代码来讲一下simbert之milvus应用。 import numpy as np from bert4keras.backen…

addr2line 使用,定位kernel panic 代码位置

在kernel崩溃时&#xff0c;方便定位代码。 需要打开kernel配置CONFIG_DEBUG_INFO。 需要有System.map和vmlinux文件&#xff0c;一般在out目录。 一般panic的时候会有给出panic的指针&#xff0c;如下down_write。 el1_data说明发生异常了&#xff0c;进入和entry.S文件&a…

视频转换、视频压缩、录屏等工具合集:迅捷视频工具箱

这是一款功能强大的视频处理软件&#xff0c;提供了多种视频处理功能。可以使用该软件进行视频剪辑、视频转换、音频转换、视频录像、视频压缩、字幕贴图等多种操作。软件界面简洁易用&#xff0c;操作方便&#xff0c;可以满足各种视频处理需求。 基本功能 视频压缩&#xff…

华为设备这14个广域网命令,值得网工收藏

华为设备广域网命令是网络管理员在运维过程中常用的一类命令。该命令集涵盖了DCC配置命令、PPP配置命令、MP配置命令、PPPoE命令、ATM配置命令、帧中继配置命令、HDLC配置命令、LAPB配置命令、X.25配置命令、IP-Trunk配置命令、ISDN配置命令、Modem配置命令、RTC终端接入配置命…

商场楼层索引图怎么做?商场内部地图导航怎么做?

商场内部地图导航怎么做&#xff1f;最近&#xff0c;某论坛上有一个帖子&#xff0c;主题是谈谈“逛商场中最糗的事情”&#xff0c;网友们纷纷跟帖回应&#xff0c;讲述自己在商场里遇到的尴尬&#xff0c;从在停车场找车如何困难&#xff0c;还有在商场里“迷路”的经历………

解决Ubuntu系统/usr/lib/xorg/Xorg占用显卡内存问题

问题描述&#xff1a; 服务器新安装的Ubuntu系统&#xff0c;开机默认/usr/lib/xorg/Xorg线程会占用显卡内存&#xff0c;占用内存大小为4Mb&#xff0c;虽然占用量不大&#xff0c;但是对于强迫症患者来说实在太不友好&#xff01; 解决方法&#xff1a;将xorg的线程移动到集…

为什么我们需要API接口?API接口的核心又是什么?

API&#xff08;Application Programming Interface&#xff09;是一种连接不同软件之间的标准化的接口&#xff0c;可以让不同软件间进行数据交互和通信。API接口的作用很多&#xff0c;以下是几个主要的原因&#xff1a; 1.提高软件系统的灵活性和可扩展性。API接口可以将不…

大数据 | Hadoop HA高可用搭建保姆级教程(大二学长的万字笔记)

知识目录 一、写在前面&#x1f388;二、集群准备&#x1f35f;2.1 集群规划2.2 集群解释 三、说明&#x1f511;3.1 主机名说明3.2 用户名说明3.3 操作目录说明3.3 必要工具说明 四、上传资料&#x1f335;4.1 资料准备4.2 脚本准备4.3 配置文件准备 五、解压与修改文件&#…

华为OD机试真题 Java 实现【递增字符串】【2023Q1 200分】,附详细解题思路

一、题目描述 定义字符串完全由“A’和B"组成&#xff0c;当然也可以全是"A"或全是"B。如果字符串从前往后都是以字典序排列的&#xff0c;那么我们称之为严格递增字符串。 给出一个字符串5&#xff0c;允许修改字符串中的任意字符&#xff0c;即可以将任…

色彩空间转换 HSV,GRAY

RGB色彩空间是一种比较常见的色彩空间&#xff0c;除此之外比较常见的色彩空间还包括GRAY色彩空间&#xff08;灰度图像&#xff09;、YCrCb色彩空间、HSV色彩空间、HLS色彩空间、CIEL&#xff0a;a&#xff0a;b&#xff0a;色彩空间、CIEL&#xff0a;u&#xff0a;v&#xf…

租售keysight E8257D 50G模拟信号发生器 销售/回收

是德&#xff08;Keysight&#xff09; E8257D 模拟信号发生器 Keysight E8257D (Agilent) PSG 模拟信号发生器提供业界领先的输出功率、电平精度和高达 67 GHz 的相位噪声性能&#xff08;工作频率可达 70 GHz&#xff09;。Agilent PSG 模拟信号发生器的高输出功率和卓越的电…

SpringBoot + MyBatis报错:Invalid bound statement (not found)解决

背景&#xff1a;XML配置文件规范 使用Mybatis的注解方式&#xff0c;主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能&#xff0c;建议使用XML来配置映射语句&#xff0c;也就是将SQL语句写在XML配置文件中。 在Mybatis中使用XML映射文件方式开发&#xff0c…

从速度、质量到成本,Grid分布式并行测试在web自动化测试中尽显优势。

目录 前言&#xff1a; 一、Grid分布式并行测试简介 二、Grid分布式并行测试的优势 三、Grid分布式并行测试架构 四、Grid分布式并行测试封装 五、结语 前言&#xff1a; WEB自动化测试已经成为了软件开发流程中不可或缺的一部分。测试人员通过编写脚本&#xff0c;模拟用…

由于找不到msvcp140.dll文件,我们要怎么解决这种情况?

在使用电脑的过程中&#xff0c;我们经常会遇到各种各样的问题&#xff0c;其中之一就是缺少msvcp140.dll文件。这个问题通常会导致某些软件无法正常运行&#xff0c;而且很多人对于如何解决这个问题并不是很清楚。本文将会介绍多种修复方法&#xff0c;并对比哪种方法比较方便…

海睿思分享 | 颠覆传统方式的数仓构建工具

你还在为构建数仓的低效率而发愁吗&#xff1f; 你还在为数仓构建不能体系化而苦恼吗&#xff1f; 也许大家都不愿意承认&#xff0c;但是绝大部分的企业当前是没有统一、标准、公共、全局的模型设计的&#xff0c;而仅仅是把数据同步上来&#xff0c;然后基于业务需求做烟囱式…