| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言,利用平面直角坐标系画个圆 -> 正文阅读 |
|
[C++知识库]C语言,利用平面直角坐标系画个圆 |
? ?最近学习了C语言,做了一个用星号绘制矩形菜单的题,突然就想到如果要绘制圆应该怎么办。 想了很久,觉得可以利用平面直角坐标系绘制,于是就自己试了试。 源代码: #include<stdio.h>
#define cr 1/*定义一个圆的半径*/? double dt(struct xy * f1,struct xy * f2);//返回两点间距离,需要两个点坐标地址? int main() ?? ?leftup.x=0; ?? ?rightdown.x=2; ?? ?cen.x=1; double dt(struct xy * f1,struct xy * f2)? 这里定义一个名为xy的结构体来表示坐标(x,y)这样的结构。用名为cr的常量定义这个圆的半径。 dt函数接受两个xy结构的地址,其数学意义是接受两个点的坐标。返回值是这两点坐标的距离,原理是两点坐标公式(根号下(x1-x2)方+(y1-y2)方)。 定义三组坐标,左上(liftup)、右下(rightdown)、圆心(cen),并设置它们的x与y。 为什么要定义左上和右下的坐标: ?上面的程序圆的半径为1,圆心坐标为(1,-1),我们需要从原点“拉”一个矩形能恰好包住这个圆,如图 根据这个图,就可以更好的理解接下来的两个for循环。 两个for循环覆盖的地方是矩形,在第二个for中,?将圆心与左上的坐标传递给dt函数,返回这两点间的距离。用if判断这一距离是否小于等于半径(圆内和圆上的所有点与圆心的连线长度小于等于半斤)。如果是则输出星号,不是输出空格。这样,一个处于矩形中的圆形就绘制好了。 改变两个for中每次递增(递减)的值的大小可以改变圆的“饱满度”。 为什么其中一个for递减0.2,一个递增0.1: ? ? ? ? 递增还是递减取决与想在哪个象限画圆,我使用的是第四象限,所以横坐标递增变化,纵坐标递减变化(但使用哪个象限没有区别,使用第四象限只是因为命令行的光标从左上到右下,用第四象限更好理解)。 ? ? ? ? 当纵坐标的变化值是横坐标一半时才是一个圆,这是因为win7命令行中一般情况下显示的字符宽是长的两倍(一个方字被左右压扁了?)? 最后,再试试其他大小的圆 将递增(递减)的值减半,更“饱和”的圆: 半径为1,圆心(3,-1)的圆,递增递减值与第一个圆一样 注意:这里圆心坐标发生变化,因为要矩形要包住圆,所以rightdown的值也需变化? 显而易见,rightdown.x=4; ? ? ? ? ? ? ? ? ? righrdown.y=-2; 就可以了。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/4 8:47:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |