c++ 珊格画椭圆

#ifndef _TEST_H
#define _TEST_H
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
    const double pi=3.14159,p=16.0; //圆周率和圆的半径
    double angle;                    //角度
    int x,y;                        //计算存储数组的坐标
    char rose[25][80];                //模拟屏幕为25*80个像素构成
    for (x=0;x<80;x++)                //置空
    {
        for (y=0;y<25;y++)
        {
            rose[y][x]=‘ ‘;
        }
    }
    for (int i=0;i<20;i++)            //把图形经过的轨迹位置置为*
    {
        //注意x坐标值实际是列数,y坐标值实际才是行数
        angle=i*pi/10;
        x=int(p*cos(angle))*2+40;    //乘以2和除以二只是为了调整显示效果
        y=int(p*sin(angle))/2+13;   //因为控制台显示字符的时候宽和高不等比例
        rose[y][x]=‘*‘;                //以40和13为圆心是模拟屏幕像素决定,当然可以另外设置
    }
    for (y=0;y<25;y++)
    {
        for (x=0;x<80;x++)
        {
            cout<<rose[y][x];
        }
        cout << endl;
    }
    /*const double pi=3.14159,a=16.0;
     const int aspect = 2;
     double angle,p=16;
     int x,y;
     char rose[25][80];
     for (x=0;x<80;x++)
     {
     for (y=0;y<25;y++)
     {
     rose[y][x]=‘ ‘;
     }
     }
     for (int i=0;i<128;i++)
     {
     angle=i*pi/64;
     p=a*sin(2*angle);
     x=int(p*cos(angle))*aspect+40;
     //x=int(p*cos(angle))+40;
     y=int(p*sin(angle))+13;
     rose[y][x]=‘*‘;
     }

     for (y=0;y<25;y++)
     {
     for (x=0;x<80;x++)
     {
     cout<<rose[y][x];
     }
     cout << endl;
     }*/
    return 0;
}
#endif //_TEST_H

输出


                                *       *       *
                      *                                   *                     

                *                                               *               

          *                                                           *         

          *                                                             *       

          *                                                           *         

                *                                               *               

                      *                                   *
                                *       *       *                               

Program ended with exit code: 0

原文地址:https://www.cnblogs.com/sea-stream/p/11100319.html

时间: 2024-08-29 09:13:31

c++ 珊格画椭圆的相关文章

《图形学》实验七:中点Bresenham算法画椭圆

开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画椭圆. 实验结果: 代码: 1 #include <gl/glut.h> 2 3 #define WIDTH 500 4 #define HEIGHT 500 5 #define OFFSET 15 //偏移量,偏移到原点 6 #define A 6 7 #define B 5 8 9 void Init() //其它初始化 10 { 11 glClearColor(1.0f,1.0f,1.0f,1.0f);

用MFC画椭圆

编写一个单文档界面程序,该程序在用户区能以在两个矩形的相交区域为外接矩形画一个椭圆.效果如下: 1)用MFC AppWizard[exe],创建一个名称为RecRec的单文档应用程序. 2)在视图类CRecRecView的声明中,添加两个成员变量: public: CRect m_rRect2; CRect m_rRect1; 3)在视图类CRecRecView的构造函数CRecRecView()中,初始化数据成员: CRecRecView::CRecRecView():m_rRect1(50,

珊格地图笔记

写在前面:这篇文章是Coursera上的课程(Robotics: Estimation and Learning),权当笔记,激光传感器的数据可以在课程内下载.这一周的内容比较简单,但十分实用. 在这片文章中,我们将会介绍: 机器人世界的几种地图: 占据栅格地图的表示方法与更新方法: 利用激光传感器数据构建占据栅格地图. 1. 机器人地图的分类 地图有很多种表示方式,例如,用经纬度标识地方的世界地图,城市的地铁图,校园指引图. 第一种我们称为尺度地图(Metric Map),每一个地点都可以用坐

中点Bresenham算法光栅化画椭圆(四分法)

void Bresenham_Ellipse(CDC *pDC, int ox, int oy, int a, int b)//圆心x,圆心y,横长,纵长 { float d = b*b + a*a*(-b + 0.25); int x = 0, y = b, fx = a*a / sqrt((float)a*a + b*b); while (x != fx) { if (d < 0) d += b*b*(2 * x + 3); else { --y; d += b*b*(2 * x + 3)

c++ 珊格迷宫问题

#demo1 #include<iostream> #include<ctime> #include<cstdlib> #include<queue> #include<cstdio> using namespace std; //生成迷宫 const int HEIGHT = 10; const int WIDTH = 10; bool isFound = false; int maze[HEIGHT][WIDTH]; void initial

IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)(转)

Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框. 自己学习时实现的demo,希望对大家有帮助,具体的实现看代码,并有完美的注释解释,还有一些对我帮助的博文供大家参考.都在代码里面. 看一下demo效果图先: 自定义CustomView类,CustomView.h: [cpp]  view plain copy #import <UIKit/UIKit.h> #import 

Android通过用代码画虚线椭圆边框背景来学习一下shape的用法

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状,shape可以绘制矩形环形以及椭圆,所以只需要用椭圆即可,在使用的时候将控件比如imageview或textview的高宽设置成一样就是正圆,solid表示远的填充色,stroke则代表远的边框线,所以两者结合可以实现带边缘的圆,当然也可以直接加上size控制高宽.那么我首先带你们了解一下Shape下有哪些标签,并且都代表什么意思: shape属性: rectangle:矩形 oval:椭圆 line:线,需要

Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)

1.首先说一下canvas类: Class OverviewThe Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path,

运用椭圆画法,45行代码画出任意正多边形

最近做Box2dWeb开发时,想写个创建正多边形的功能,可是由于学识尚浅,我在草稿纸上画了,想了一个上午也没有研究出什么好方法.后来翻抽屉的时候,找出了以前哥哥画的一张用同心圆画椭圆的示意图.看到这幅画,我不禁在想椭圆不就是一个N边形吗?圆不就是一个正N边形吗?如果把两个同心圆的半径设定为相等,画出来的椭圆不就是一个圆吗?因此,我立刻开始实验.原本我以为比较难,会用到圆的解析式之类的,没想到就45行代码就搞定了,主要用到的数学知识就是sin和cos. 也许有人不明白如何用同心圆画椭圆,我就借用网