如何用c++画圆?(不要用circle之类的函数,要源代码)

作者&投稿:董供 (若有异议请与网页底部的电邮联系)
用C语言画圆,但不要库里的函数画,直接用代码怎么画~

#include
#include

#define R 10 //半径
#define X 10 //圆心x坐标
#define Y 10 //圆心Y坐标

int main(void)
{
int x,y;
int m;
int i;

for(i=Y-R;i>=1;i--)
{
printf("
");
}
for(y=R;y>=-R;y--)
{
m=2*sqrt(R*R - y*y); //横坐标的偏移量,因为字体长宽比例为2,所以要乘2
for(x=1;x<X+R-m;x++) //打印左半圆
{
printf(" ");
}
printf("*");

for(;x<X+R+m;x++) //打印右半圆
{
printf(" ");
}
printf("*
");
}
}

#include #include /*预定义库函数*/void circlePoint(int x,int y) /*八分法画圆程序*/{circle(320 x*20,240 y*20,3);circle(320 y*20,240 x*20,3);circle(320-y*20,240 x*20,3);circle(320-x*20,240 y*20,3);circle(320-x*20,240 y*20,3);circle(320-x*20,240-y*20,3);circle(320-y*20,240-x*20,3);circle(320 y*20,240-x*20,3);circle(320 x*20,240-y*20,3);}void MidBresenhamcircle(int r) /* 中点Bresenham算法画圆的程序 */{int x,y,d;x=0;y=r;d=1-r; /* 计算初始值 */while(x<y){ circlePoint(x,y); /* 绘制点(x,y)及其在八分圆中的另外7个对称点 */if(d<0) d =2*x 3; /* 根据误差项d的判断,决定非最大位移方向上是走还是不走 */else{ d =2*(x-y) 5;y--;}x ;delay(900000);} /* while */}main(){int i,j,r,graphmode,graphdriver;detectgraph(&graphdriver,&graphmode);initgraph(&graphdriver,&graphmode," ");printf("中点Bresenhamcircle算法画圆的程序
"); /*提示信息*/printf("注意 |r|<=11");printf("
输入半径值 r:");scanf("%d",&r);printf("按任意键显示图形...");getch();cleardevice();setbkcolor(BLACK);for(i=20;i<=620;i =20) /*使用双循环画点函数画出表格中的纵坐标*/for(j=20;j<=460;j )putpixel(i,j,2);for(j=20;j<=460;j =20) /*使用双循环画点函数画出表格中的横坐标*/for(i=20;i<=620;i )putpixel(i,j,2);outtextxy(320,245,"0"); /*原点坐标*/outtextxy(320-5*20,245,"-5");circle(320-5*20,240,2); /*横坐标值*/outtextxy(320 5*20,245,"5");circle(320 5*20,240,2);outtextxy(320-10*20,245,"-10");circle(320-10*20,240,2);outtextxy(320 10*20,245,"10");circle(320 10*20,240,2);outtextxy(320-15*20,245,"-15");circle(320-15*20,240,2);outtextxy(320 15*20,245,"15");circle(320 15*20,240,2);outtextxy(320,240-5*20,"-5");circle(320,240-5*20,2); /*纵坐标值*/outtextxy(320,240 5*20,"5");circle(320,240 5*20,2);outtextxy(320,240-10*20,"-10");circle(320,240-10*20,2);outtextxy(320,240 10*20,"10");circle(320,240 10*20,2);outtextxy(20,10,"The center of the circle is (0,0) "); /*坐标轴左上角显示提示信息*/setcolor(RED); /*标记坐标轴*/line(20,240,620,240); outtextxy(320 15*20,230,"X");line(320,20,320,460); outtextxy(330,20,"Y");setcolor(YELLOW);MidBresenhamcircle(r);setcolor(BLUE); /*绘制圆*/circle(320,240,r*20);setcolor(2);getch();closegraph();}

Bresenham算法:
#include<graphics.h>
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
void circle_pointS(int x,int y,int color,int xc,int yc)
{
putpixel(x+xc,y+yc,color);
putpixel(y+xc,x+yc,color);
putpixel(y+xc,-x+yc,color);
putpixel(x+xc,-y+yc,color);
putpixel(-x+xc,-y+yc,color);
putpixel(-y+xc,-x+yc,color);
putpixel(-y+xc,x+yc,color);
putpixel(-x+xc,y+yc,color);
}
void Bresenham_Circle(int xc,int yc,int r,int color)
{
int x,y,d;
x=0;
y=r;
d=3-2*r;
while(x<y)
{
circle_pointS(x,y,color,xc,yc);
if(d>=0)
{
d=d+4*(x-y)+10;
y=y-1;
}
else
d=d+4*x+6;
x=x+1;
}
if (x==y) circle_pointS(x,y,color,xc,yc);
}

void main()
{
int gmode,gdriver=DETECT;
int x,y,r,color;/*一定要在此下行上面定义*/
initgraph(&gdriver,&gmode,"");
scanf("%d,%d,%d,%d",&x,&y,&r,&color);/*取地址不要忘了*/
Bresenham_Circle(x,y,r,color);
getch();
closegraph();
}此代码要在turbo C2.0运行


画好了

比较实惠的是Bresenham算法,代码自己去查

会三角函数吗?
知道圆的方程吗?

那你自己就会画了,可能有锯齿


...的方程 : .(1)当 为何值时,方程C表示圆。(2)若圆C与直线 相交于M,N...
(1) 时方程C表示圆。(2) ;(3) 。 试题分析:(1)方程C可化为 ………2分显然 时方程C表示圆。………4分(2)圆的方程化为 圆心 C(1,2),半径 则圆心C(1,2)到直线l:x+2y-4=0的距离为 ………6分 ,有 得 ………8分(3)设存在这...

C语言画图问题!
我都很久没用C语言的画图函数了,像画圆,画正方形,画直线,都有函数的,只不过那时候我用的编译器是win-tc,严格来讲画图这一部分不属于C语言,只是相对于编译器来说,比如想画直线就用line函数,比如我要画一个直线就是如下语句:line(100,100,200,200);我想你应该能理解函数里参数的意思这些画...

关于c语言图像函数
用 Alt + Enter 切换到windows 用 Alt + Tab 也可以切换到windows 我这里用的WinXP,很正常,黑色背景,白色的线条 --- include<graphics.h> void main(){ int driver,mode;driver=DETECT;mode=0;initgraph(&driver,&mode,"");setcolor(15);line(66,66,88,88);lineto(100,100);linerel(36,6...

已知关于x,y的方程C:x 2 +y 2 -2x-4y+m=0。(1)当m为何值时,方程C表示...
解:(1)方程C可化为 , 显然,5-m>0即m<5时,方程C表示圆。(2)圆的方程化为 , 圆心 C(1,2),半径 , 则圆心C(1,2)到直线l:x+2y-4=0的距离为 , ,∴ ,有 , ∴ ,解得m=4。

CAD中十个最常用的快捷键是什么?分别帮我列出用途
C:画圆 D:尺寸资源管理器 E:删除 F:倒圆角 G:对象组合 H:填充 I:插入 J:对接 S:拉伸 T:多行文本输入 W:定义块并保存到硬盘中 L:直线 M:移动 X:分解炸开 V:设置当前坐标 U:恢复上一次操作 O:偏移 P:移动 Z:缩放 参考资料:百度百科-CAD快捷键 已赞过 已踩过< 你对这个回答的评价是? 评论 收...

哪位好心网友给解答下我的c语言问题?跪求了! 解答成功追加20 1、输 ...
int main(){ float r,s;scanf("%f",&r);s=3.14*r*r;printf("圆面积:%.2f\\n",s);return 0;} 2.include <stdio.h> int main(){ float x,y,z;scanf("%f%f",&x,&y);if(x>=0&&y>=0)z=((x+1)\/(x+2))*y;else if(x>0&&y<=0)z=(x-2)\/(y+1);else if(x<...

C 画圆为什么 #include <graphics.h>不可以用
有很多c的编译平台,你用的是哪个?graphics.h最早是在tc上使用,后来在vc上也有第三方实现。如果你用的vc,那就安装easyx,就可以使用graphics.h。

...2x-4y+m=0 (1)当m为何值时,方程c表示园? (2)若圆c与直
①(x-1)^2+(y-2)^2=-M+5 只需5-m>0,M<5 ②半径r=根号下5-m,,,半弦=四分之根号五,圆心到直线的距离可用两点间距离公式求 然后勾股定理求出根号下r=根号下5-m=根号下17\/5,m=8\/5

已知曲线C: (1)当 为何值时,曲线C表示圆;(2)在(1)的条件下,若曲线C与...
回答:(1) (2) (3)存在, 试题分析:(1)根据圆的一般式可知, ,可得 范围;(2)将(1)中圆变形为标准方程,可知 存在于半径中,所以根据圆中 ,先求出圆心到直线的距离 ,即可求半径得 .(3)假设存在,则有 ,设出两点坐标,可得 .根据直线与圆的位置关系是相交,所以联立后首先根据 初步判断 的...

...三角形ABC,角ACB=90度,AC=6,AB=10,以点C为圆心,以4,8为半径画圆C
角ACB=90度,AC=6,AB=10,BC=8 过C做CD⊥AB,垂足为D S=CD*AB\/2=CA*CB\/2 CD=48\/10=4.8 即C到AB的距离=4.8 以点C为圆心,以4,8为半径画圆C 直线AB与圆C相切

惠水县13723024782: 谁知道怎么用c++画圆啊?简易的一段代码就好 -
溥疮紫地: #include "Stdio.h"#include "Conio.h"# include "graphics.h"# include "math.h"# define PI 3.1415926 void digui(int x,int y,int r) {int xi[8],yi[8], a=45,n ; circle(x,y,r); if(r>=5) { for(n=1;n {xi[n]=x+2*r*sin(a*n*2*PI/360); yi[n]=y-2*r*cos(a*n*2*PI/...

惠水县13723024782: 如何用C++语言输出一个圆的形状 -
溥疮紫地: 正在学C语言正好从网上看到一个#include#include#includeusingnamespacestd;intmain(intargc,char*argv[]){chararg[200]={0};arg[0]='\"';strcpy(arg+1,argv[0]);intlen=int(strlen(arg));arg[len]='\"';HWNDhWnd=FindWindow(NULL,arg);//找到程序运行...

惠水县13723024782: 如何用vc++画圆形图像 -
溥疮紫地: 楼主是不是想通过你给的代码来画出圆形?如果是的话, 你就按照圆形的参数方程 x = r*cos(d)y = r* sin (d)计算出每个园上 每个点的坐标,在用你的类里面的circlePlotPoints 函数 或者 setPixel 把每个点画出来就行了如果是想问用什么函数画园, 可以选择用mfc中的 pDC->Ellipse(); 参数去查msdn或者 opengl 中的函数.

惠水县13723024782: 如何用c++输出一个圆形 -
溥疮紫地: //vc6.0编译通过#include#include #include using namespace std; int main(int argc, char* argv[]) { char arg[200]={0}; arg[0]='\"'; strcpy(arg+1, argv[0]); int len=int(strlen(arg)); arg[len]='\"'; hwnd hwnd=findwindow(null, arg); //找到程序运行窗口的句柄 ...

惠水县13723024782: 用C++编程画圆 -
溥疮紫地: //那个,不知道这个可以不?够精简哦#includeusing namespace std; void main() { cout<<"○●"< }

惠水县13723024782: 想用c++画一个圆,怎么编程实现啊,大哥帮忙来 -
溥疮紫地: #include using namespace std;int main(){#define PI 3.14159265 double r, c, s; cin>>r; c=2*PI*r; s=PI*r*r; cout

惠水县13723024782: 如何用c++编写程序输出一个圆形 -
溥疮紫地: 代码如下(控制台运行): #include <iostream>#include <cmath>void zi(char z){ std::cout<<z;}double un (double a){ double b; if (a>=0) b=a; else b=-a; return b;}double panbie(double m,double n,double r,double c){ if (sqrt(pow(un(r-...

惠水县13723024782: 求助C++画圆 -
溥疮紫地: #define TRUE 1 #define FALSE 0 #include <graphics.h> #include <stdio.h> #include <conio.h> class Cposition { protected: int x,y; public: void setposition(int X, int Y) {x=X; y=Y; } Cposition(int X, int Y) {x=X; y=Y; } Cposition() {x=y=0; } }; class Cpoint...

惠水县13723024782: 如何用c++画一个圆形或椭圆形? -
溥疮紫地: 用图形库,比如easyX或者EGE.

惠水县13723024782: c#和c++如何画圆? -
溥疮紫地: C# 代码 public class Form2 : Form { protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); // 在 0,0 位置 绘制 100 宽 100 高的椭圆(即圆) e.Graphics.DrawEllipse(Pens.Black, new Rectangle(0, 0, 100, 100)); } } C++ 代码 MFC ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网