c語言畫弧線

PolyBezier
● 說明
此函數用於畫貝賽爾樣條曲線。貝賽爾樣條是一種非常優美的曲線,廣泛應用於計算機圖形學中。函數PolyBezier和PolyBezierTo用於繪制這種樣條曲線。一條貝賽爾樣條由4個定義點定義:兩個端點和兩個控制點。
● 原型
BOOL PolyBezier(HDC hdc, CONST POINT *lppt, DWORD cPoints);
● 參數
hdc:指定的設備環境句柄。
lppt:POINT結構數組的指針,包括了樣條端點和控制點的坐標,其順序是起點的坐標、起點的控制點的坐標、終點的控制點的坐標和終點的坐標。
cPoints:指明數組中的點的個數。
● 返回值
若函數調用成功,則返回非零,否則返回零。

⑵ c語言畫橢圓

#include <graphics.h>

...

/**
* x,y 圓心坐標,xradius,yradius 橢圓x,y方向的半徑 ,*start,end圓弧起點和終點角度,單位為度
*/
void far ellipse(int x, int y, int start,int end,int xradius, int yradius);

/**
* x,y為要填充區域內任意坐標, border填充區域邊界顏色
*/
void far floodfill(int x, int y, int border);

⑶ 能給個畫圓或者畫圓弧的C程序嗎講一下思路原理也可以,謝謝啦

這是我做過的,你試試

#include<stdio.h>
#include<graphics.h>
#define PATH "c:\\TC30\\BGI"
int x0,y0;

void Bresenham_Circle(int r,int color)
{
int x,y,delta,delta1,delta2,direction;
x=0;
y=r;
delta=2*(1-r);
while(y>=0)
{
putpixel(x+x0,y+y0,color);
putpixel(x0-x,y0-y,color);
putpixel(x0-x,y+y0,color);
putpixel(x+x0,y0-y,color);
if(delta<0)
{
delta1=2*(delta+y)-1;
if(delta1<=0)
direction=1;
else
direction=2;
}
else
{
if(delta>0)
{
delta2=2*(delta-x)-1;
if(delta2<=0)
direction=2;
else
direction=3;
}
else
direction=2;
}
switch(direction)
{
case 1:x++;
delta+=2*x+1;
break;
case 2:x++;
y--;
delta+=2*(x-y+1);
break;
case 3:y--;
delta+=(-2*y+1);
break;
}
}
}

int main()
{
int a,b;
int r,color;
// scanf("%d%d%d%d%d%d",&x0,&y0,&x1,&y1,&color);
a=VGA;
b=VGAHI;
initgraph(&a,&b,PATH);
setbkcolor(24);
setcolor(15);
x0=200;
y0=200;
r=180;
color=10;
Bresenham_Circle(r,color);
getch();
return 1;
}

⑷ 怎麼用C語言畫圓弧,還有就是怎麼讓一個圓做曲線運動

用C語言畫圓弧將系統初
始化成畫圖狀態(默認的是文字狀態).然後庫函數個畫圓的函數,該函數有專4個參數:圓心的位置屬,半徑的長度,圓弧的起始角的大小(以水平面為0度,下同)以及圓弧的終止角的大小.根據需要就可以畫出各種圓弧了
!

⑸ C++/C語言 畫一個圓(帶寬度的圓弧)

MFC裡面畫點是dc.pixel(point)
//這里的point是你設置ClickButtonDown或者ClickButtonUp裡面返回的CPoint類型的值,如果是畫線的話,調用moveto()函數到直線的起點,然後lineto函數到終點
;如果你要畫圓的話用Ellipse()函數,ellipse(CRect());
CRect是一個類型的變數,你需要用兩個點來構造一個CRect

⑹ c語言繪制餘弦曲線,請給出詳細的注釋

數字62是 2π(3.1415926)*10 的近似值,這下該明白了吧。也就是說y變數控制著*所在第幾行,而x變數控制著*在每行中的應該出現的位置。

呵呵,原理是這樣的,這是一個用*來描繪餘弦曲線的程序,而我們知道printf在輸出的時候如果不指定位置,他是默認從左到右輸出,當加了\n控制符時,他會換行下一行仍是從左到右輸出,而模擬餘弦曲線時為了讓*在該出現的位置出現我們必須控制printf函數輸出*的位置那麼什麼也不出也不行,只能用printf輸出「空格」,而空格是看不見的,能達到同樣效果。這樣在每行,沒有曲線的位置輸出的是空格而有曲線的位置就輸出了*。最後所有行的*就組成了餘弦曲線。
如下所示(字母V,有*的每行中*的前面是有空格的):
* *
* *
* *
*

⑺ VC++中Arc函數畫圓弧

BOOL Arc(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);
(x1,y1)指定外接矩形左上角坐標,
(x2,y2)指定外接矩形右下角坐標。
(x3,y3)是起始點,不一定在圓弧上。
(x4,y4)是結束,不一定在圓弧上。
注意:畫一條橢圓弧,是畫的這個外接矩形定義的一段橢圓弧,這個弧的起點是從外接矩形中心到起始點(x3,y3)的線與橢圓的交點。
這個弧的末點是從外接矩形中心到結束點(x4,y4)的線與橢圓的交點。
還有一種聲明
BOOL Arc(LPCRECT lpRect,POINT ptStart,POINT PtEnd);
意思和上面相似。
lpRect指定外接矩形,ptStart是起始點,一樣不一定在弧上,PtEnd是末點,一樣不一定在弧上。

⑻ C語言出錯畫圓和圓弧

#include"graphics.h"
#include<stdio.h>
main()
{
intdrive,mode;
drive=DETECT;//必須大寫。
initgraph(&drive,&mode,"c:\tc30\bgi");
circle(150,100,80);
circle(120,80,15);
cricle(180,80,15);
line(145,105,140,125);
line(155,105,160,125);
line(140,125,160,125);
arc(150,80,235,305,60);
arc(150,110,210,330,40);
getch();
closegraph();
}

依然不推薦用tc畫圖... 太過時專了 沒什麼屬意義

⑼ C語言繪制圓弧演算法

可以搜索 中點畫圓法

⑽ C語言畫圓的格式是DrawFillCircle(x,y,1,color),問畫圓弧的格式是什麼

用arc() 可畫圓弧
功能: 函數arc()使用當前繪圖色並以實線畫一圓弧。
用法: 函數調內用方式為void arc(int x,int y,int startangle,int endangle,int radius);
說明: 參數x,y為圓心容坐標,startangle與endangle分別為起始角與終止角,radius為半徑。圓心坐標和半徑以像素個數給出,起始角和終止角以度為單位,0度位於右邊,90度位於頂部,180度位於左邊,底部是270度。同往常一樣,360度與0度重合。角度按逆時針方向增加,但並不要求終止角一定比起始角大。例如指定300度和90度分別為起始角和終止角,與指定300度和450度分別為起始角和終止角可畫出相同的弧。大於360度可作為參數,它將被化到0度 ̄360度范圍里。函數arc()能畫封閉圓,只要取起始角為0度,終止角為360度即可。此函數中,屏顯縱橫比可自動調節。