導航:首頁 > 源碼編譯 > 用vc編譯的圖形函數

用vc編譯的圖形函數

發布時間:2022-05-20 04:53:13

① 計算機圖形學中用vc寫時如何定義要調用的函數

(1)
繪制橢圓弧
BOOL
Arc(
int
x1,
int
y1,
int
x2,
int
y2,
int
x3,
int
y3,
int
x4,
int
y4
);
BOOL
Arc(
LPCRECT
lpRect,
POINT
ptStart,
POINT
ptEnd
);
其他繪圖函數
(2)
CRect的構造函數
CRect();
CRect(
int
l,
int
t,
int
r,
int
b
);
CRect(
POINT
topLeft,
POINT
bottomRight
);
*
繪制矩形
void
FrameRect(
LPCRECT
lpRect,
CBrush*
pBrush
);
void
FillRect(
LPCRECT
lpRect,
CBrush*
pBrush
);
Rectangle
(int
x1,
int
y1,
int
x2,
int
y2);
Rectangle
(LPCRECT
lpRect);
*
繪制橢圓
BOOL
Ellipse(
int
x1,
int
y1,
int
x2,
int
y2
);
BOOL
Ellipse(
LPCRECT
lpRect
);
(3)
畫餅圖
BOOL
pie
(int
x1,
int
y1,
int
x2,
int
y2,
int
x3,
int
y3,
int
x4,
int
y4);
BOOL
pie
(LPCRECT
lpRect,
POINT
ptStart,
POINT
ptEnd);
等等,所以看你要畫什麼圖形,而且還要看看MFC,Windows的API,調用的話,直接調用就可以了。個人覺得你的問題不是很理解,不知道回答得正不正確。

② VC API編程時繪圖函數Polygon()怎麼用,括弧裡面填什麼參數越具體越好,謝謝!

VC里的Polygon是畫多邊形的函數,原型為:BOOL Polygon( LPPOINT lpPoints, int nCount )
第一個參數是指定為多邊形頂點的數組,數據類型為CPoint實例或是POINT結構型。
第二個參數是多邊形頂點的個數。
假設是畫5邊形,則第一個lpPoints為5個POINT數組,nCount為5。
給個例子,把用區域的每邊中點作為頂點畫出四邊形:
void CMyView::OnDraw(CDC* pDC)

CRect rect;
GetClientRect(rect); //獲得用戶區域大小
CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
CPen* pOldPen = pDC->SelectObject(&penBlue); //藍筆紅刷
CBrush brushRed(RGB(255, 0, 0));
CBrush* pOldBrush = pDC->SelectObject(&brushRed);
CPoint pts[4];
pts[0].x = rect.left + rect.Width()/2;
pts[0].y = rect.top;

pts[1].x = rect.right;
pts[1].y = rect.top + rect.Height()/2;

pts[2].x = pts[0].x;
pts[2].y = rect.bottom;

pts[3].x = rect.left;
pts[3].y = pts[1].y;
pDC->Polygon(pts, 4);
// Put back the old objects.
pDC->SelectObject(pOldPen);
pDC->SelectObject(pOldBrush);

希望對你有幫助。

③ 用VC編譯C語言的圖形庫函數是什麼

windows下,是GUI(Raster)了,Windows.h裡面都有了,效率一般。
當然你要喜歡其他的,也可以用OpenGL,DirectX。
效率較好,但是按鈕之類需要自己畫。

④ VC++ MFC提供的繪圖函數有哪些這是一個簡答題,就要函數有哪些

1. 畫像素點
畫像素點就是設置像素點的顏色,從前面3)(2)已知道這可由CDC的成員函數SetPixel來做,該函數的原型為:
COLORREF SetPixel( int x, int y, COLORREF crColor ); 或
COLORREF SetPixel( POINT point, COLORREF crColor );
其中,x與y分別為像素點的橫坐標與縱坐標,crColor為像素的顏色值。例如
pDC->SetPixel(i, j, RGB(r, g, b));

2.畫線狀圖
在Windows中,線狀圖必須用筆來畫(筆的創建與使用見前面的3)(3)),下面是CDC類中可以繪制線狀圖的常用成員函數:
當前位置:設置當前位置為(x, y)或point:(返回值為原當前位置的坐標)
CPoint MoveTo( int x, int y ); 或 CPoint MoveTo( POINT point);
畫線:使用DC中的筆從當前位置畫線到點(x, y)或point:(若成功返回非0值):
BOOL LineTo( int x, int y ); 或BOOL LineTo( POINT point );
畫折線:使用DC中的筆,依次將點數組lpPoints中的nCount(≥2)個點連接起來,形成一條折線:
BOOL Polyline( LPPOINT lpPoints, int nCount );
畫多邊形:似畫折線,但還會將最後的點與第一個點相連形成多邊形,並用DC中的刷填充其內部區域:
BOOL Polygon( LPPOINT lpPoints, int nCount );
畫矩形:使用DC中的筆畫左上角為(x1, y1)、右下角為(x2,y2)或范圍為*lpRect的矩形的邊線,並用DC中的刷填充其內部區域:
BOOL Rectangle( int x1, int y1, int x2, int y2 ); 或
BOOL Rectangle( LPCRECT lpRect );
有時需要根據用戶給定的兩個任意點來重新構造左上角和右下角的點,例如:
rect = CRect(min(p0.x, point.x), min(p0.y, point.y), max(p0.x,point.x), max(p0.y, point.y));
畫圓角矩形:使用DC中的筆畫左上角為(x1, y1)、右下角為(x2,y2)或范圍為*lpRect的矩形的邊線,並用寬x3或point.x高y3或point.y矩形的內接橢圓倒角,再用DC中的刷填充其內部區域:
BOOL RoundRect( int x1, int y1, int x2, int y2, int x3, int y3);
BOOL RoundRect( LPCRECT lpRect, POINT point );
例如:
int d = min(rect.Width(), rect.Height()) / 4;
pDC-> RoundRect(rect, CPoint(d, d));
畫(橢)圓:使用DC中的筆在左上角為(x1, y1)、右下角為(x2,y2)或范圍為*lpRect的矩形中畫內接(橢)圓的邊線,並用DC中的刷填充其內部區域:
BOOL Ellipse( int x1, int y1, int x2, int y2 );
BOOL Ellipse( LPCRECT lpRect );
注意,CDC中沒有畫圓的專用函數。在這里,圓是作為橢圓的(寬高相等)特例來畫的。
畫弧:(x1, y1)與(x2, y2)或lpRect的含義同畫(橢)圓,(x3, y3)或ptStart為弧的起點,(x4,y4)或ptEnd為弧的終點:(逆時針方向旋轉)
BOOL Arc( int x1, int y1, int x2, int y2, int x3, int y3, intx4, int y4 );
BOOL Arc( LPCRECT lpRect, POINT ptStart, POINT ptEnd );
BOOL ArcTo(int x1, int y1, int x2, int y2, int x3, int y3, int x4,int y4);
BOOL ArcTo(LPCRECT lpRect, POINT ptStart, POINT ptEnd);
畫圓弧:(其中(x, y)為圓心、nRadius為半徑、fStartAngle為起始角、fSweepAngle為弧段跨角)
BOOL AngleArc(int x, int y, int nRadius, float fStartAngle, floatfSweepAngle);
畫弓弦:參數的含義同上,只是用一根弦連接弧的起點和終點,形成一個弓形,並用DC中的刷填充其內部區域:
BOOL Chord( int x1, int y1, int x2, int y2, int x3, int y3, intx4, int y4 );
BOOL Chord( LPCRECT lpRect, POINT ptStart, POINT ptEnd );

3.畫填充圖
在Windows中,面狀圖必須用刷來填充(刷的創建與使用見前面的3)(4))。上面(2)中的Polygon、Rectangle、Ellipse和Chord等畫閉合線狀圖的函數,只要DC中的刷不是空刷,都可以用來畫對應的面狀圖(邊線用當前筆畫,內部用當前刷填充)。下面介紹的是CDC類中只能繪制面狀圖的其他常用成員函數:
畫填充矩形:用指定的刷pBrush畫一個以lpRect為區域的填充矩形,無邊線,填充區域包括矩形的左邊界和上邊界,但不包括矩形的右邊界和下邊界:
void FillRect( LPCRECT lpRect, CBrush* pBrush );
畫單色填充矩形:似FillRect,但只能填充單色,不能填充條紋和圖案:
void FillSolidRect( LPCRECT lpRect, COLORREF clr );
void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr);
畫餅圖(扇形):參數含義同Arc,但將起點和終點都與外接矩形的中心相連接,形成一個扇形區域,用DC中的刷填充整個扇形區域,無另外的邊線:
BOOL Pie( int x1, int y1, int x2, int y2, int x3, int y3, intx4, int y4 );
BOOL Pie( LPCRECT lpRect, POINT ptStart, POINT ptEnd );
畫拖動的矩形:先擦除線寬為sizeLast、填充刷為pBrushLast的原矩形lpRectLast,然後再以線寬為size、填充刷為pBrush畫新矩形lpRectLast。矩形的邊框用灰色的點虛線畫,預設的填充刷為空刷:
void DrawDragRect( LPCRECT lpRect, SIZE size, LPCRECTlpRectLast,
SIZE sizeLast, CBrush* pBrush = NULL, CBrush* pBrushLast = NULL);
如:pDC->DrawDragRect(rect, size, rect0, size);
填充區域:
用當前刷從點(x, y)開始向四周填充到顏色為crColor的邊界:
BOOL FloodFill(int x, int y, COLORREF crColor); // 成功返回非0
用當前刷從點(x, y)開始向四周填充:
BOOL ExtFloodFill(int x, int y, COLORREF crColor,
UINT nFillType); // 成功返回非0
nFillType =FLOODFILLBORDER:填充到顏色為crColor的邊界(同FloodFill);(用於填充內部顏色不同但邊界顏色相同的區域)
nFillType =FLOODFILLSURFACE:填充所有顏色為crColor的點,直到碰到非crColor顏色的點為止。(點(x,y)的顏色也必須為crColor),(用於填充內部顏色相同但邊界顏色可以不同的區域)。例如:
pDC->ExtFloodFill(point.x, point.y,pDC-> GetPixel_r(point), FLOODFILLSURFACE);

4.清屏
Windows沒有提供專門的清屏函數,可以調用CWnd的下面兩個函數調用來完成該功能:
void Invalidate(BOOL bErase = TRUE);
void UpdateWindow( );
或調用CWnd的函數
BOOL RedrawWindow(
LPCRECT lpRectUpdate =NULL,
CRgn* prgnUpdate =NULL,
UINT flags = RDW_INVALIDATE |RDW_UPDATENOW | RDW_ERASE
);
來完成。
例如(菜單項ID_CLEAR的事件處理函數):
CDrawView::OnClear() { // 調用OnDraw來清屏
//Invalidate();
//UpdateWindow( );
RedrawWindow( );
}
也可以用畫填充背景色矩形的方法來清屏,如:
RECT rect;
GetClientRect_r(&rect);
pDC->FillSolidRect(&rect, RGB(255,255, 255));

⑤ vc++的圖形函數是哪個

VC中的基本圖形函數基本圖形函數包括畫點,線以及其它一些基本圖形的函數一、畫點
1. 畫點函數 void far putpixel(int x, int y, int color); 該函數表示有指定的象元畫一個按color 所確定顏色的點。對於顏色color的值可從表3中獲得而對x, y是指圖形象元的坐標。在圖形模式下,是按象元來定義坐標的。對VGA適配器, 它的最高解析度為640x480,其中640為整個屏幕從左到右所有象元的個數,480 為整個屏幕從上到下所有象元的個數。屏幕的左上角坐標為(0,0),右下角坐標為(639, 479),水平方向從左到右為x 軸正向,垂直方向從上到下為y軸正向。TURBO C的圖形函數都是相對於圖形屏幕坐標,即象元來說的。關於點的另外一個函數是: int far getpixel(int x, int y); 它獲得當前點(x, y)的顏色值。
2. 有關坐標位置的函數int far getmaxx(void); 返回x軸的最大值。
int far getmaxy(void); 返回y軸的最大值。
int far getx(void); 返回遊標在x軸的位置。
void far gety(void); 返回遊標有y軸的位置。
void far moveto(int x, int y); 移動游標到(x, y)點,不是畫點,在移動過程中亦畫點。
void far moverel(int dx, int dy); 移動游標從現行位置(x, y)移動到(x+dx, y+dy)的位置,移動過程中不畫點。
二、畫線
1. 畫線函數
TURBO C提供了一系列畫線函數,下面分別敘述:
void far line(int x0, int y0, int x1, int y1); 畫一條從點(x0, y0)到(x1, y1)的直線。
void far lineto(int x, int y); 畫一作從現行游標到點(x, y)的直線。
void far linerel(int dx, int dy); 畫一條從現行游標(x,y)到按相對增量確定的點(x+dx, y+dy)的直線。
void far circle(int x, int y, int radius); 以(x, y)為圓心,radius為半徑,畫一個圓。
void far arc(int x, int y, int stangle, int endangle,int radius); 以(x,y)為圓心,radius為半徑,從stangle開始到endangle結束
(用度表示)畫一段圓弧線。在TURBO C中規定x軸正向為0 度,逆時針方向旋轉一周, 依次為90,180, 270和360度(其它有關函數也按此規定不再重述)。
void ellipse(int x, int y, int stangle, int endangle,int xradius,int yradius);以(x, y)為中心,xradius,yradius為x軸和y軸半
徑,從角stangle 開始到endangle結束畫一段橢圓線,當stangle=0,endangle=360時, 畫出一個完整的橢圓。
void far rectangle(int x1, int y1, int x2, inty2); 以(x1, y1)為左上角,(x2, y2)為右下角畫一個矩形框。
void far drawpoly(int numpoints, int far *polypoints); 畫一個頂點數為numpoints,各頂點坐標由polypoints給出的多邊形。polypoints整型數組必須至少有2 倍頂點數個無素。每一個頂點的坐標都定義為x,y,並且x在前。值得注意的是當畫一個封閉的多邊形時,numpoints 的值取實際多邊形的頂點數加一,並且數組polypoints中第一個和最後一個點的坐標相同。

⑥ VC++中的圖形庫函數的頭文件是什麼「graphics.h」怎麼用不了

graphics.h並不是C/C++的標准庫里的東西,是TC擴展庫里的,TurboC里邊才有的
VC++ 中編寫圖形程序 可以使用GDI/GDI+ 或者DX/OpenGL等圖形庫
當然,VC里還有一些基本的繪圖函數,在windows.h里
什麼LineTo畫直線、Polyline畫一系列相連的線之類的

⑦ VC++里的圖形庫函數在什麼頭文件里

是 Wingdi.h ,但只要 #include <windows.h> 就可以了,其中包含了。

⑧ VC里的圖形庫函數

graphics.h這個是TC的圖形庫函數,下載一個,添加到VC的指定文件夾,就可以在VC使用TC的圖形庫函數

⑨ VC中繪圖的函數有哪些

windows 繪圖 API
AbortPath 拋棄選入指定設備場景中的所有路徑。也取消目前正在進行的任何路徑的創建工作
AngleArc 用一個連接弧畫一條線
Arc 畫一個圓弧
BeginPath 啟動一個路徑分支
CancelDC 取消另一個線程里的長時間繪圖操作
Chord 畫一個弦
CloseEnhMetaFile 關閉指定的增強型圖元文件設備場景,並將新建的圖元文件返回一個句柄
CloseFigure 描繪到一個路徑時,關閉當前打開的圖形
CloseMetaFile 關閉指定的圖元文件設備場景,並向新建的圖元文件返回一個句柄
CopyEnhMetaFile 製作指定增強型圖元文件的一個副本(拷貝)
CopyMetaFile 製作指定(標准)圖元文件的一個副本
CreateBrushIndirect 在一個LOGBRUSH數據結構的基礎上創建一個刷子
CreateDIBPatternBrush 用一幅與設備無關的點陣圖創建一個刷子,以便指定刷子樣式(圖案)
CreateEnhMetaFile 創建一個增強型的圖元文件設備場景
CreateHatchBrush 創建帶有陰影圖案的一個刷子
CreateMetaFile 創建一個圖元文件設備場景
CreatePatternBrush 用指定了刷子圖案的一幅點陣圖創建一個刷子
CreatePen 用指定的樣式、寬度和顏色創建一個畫筆
CreatePenIndirect 根據指定的LOGPEN結構創建一個畫筆
CreateSolidBrush 用純色創建一個刷子
DeleteEnhMetaFile 刪除指定的增強型圖元文件
DeleteMetaFile 刪除指定的圖元文件
DeleteObject 刪除GDI對象,對象使用的所有系統資源都會被釋放
DrawEdge 用指定的樣式描繪一個矩形的邊框
DrawEscape 換碼(Escape)函數將數據直接發至顯示設備驅動程序
DrawFocusRect 畫一個焦點矩形
DrawFrameControl 描繪一個標准控制項
DrawState 為一幅圖象或繪圖操作應用各式各樣的效果
Ellipse 描繪一個橢圓,由指定的矩形圍繞
EndPath 停止定義一個路徑
EnumEnhMetaFile 針對一個增強型圖元文件,列舉其中單獨的圖元文件記錄
EnumMetaFile 為一個標準的windows圖元文件枚舉單獨的圖元文件記錄
EnumObjects 枚舉可隨同指定設備場景使用的畫筆和刷子
ExtCreatePen 創建一個擴展畫筆(裝飾或幾何)
ExtFloodFill 在指定的設備場景里,用當前選擇的刷子填充一個區域
FillPath 關閉路徑中任何打開的圖形,並用當前刷子填充
FillRect 用指定的刷子填充一個矩形
FlattenPath 將一個路徑中的所有曲線都轉換成線段
FloodFill 用當前選定的刷子在指定的設備場景中填充一個區域
FrameRect 用指定的刷子圍繞一個矩形畫一個邊框
GdiComment 為指定的增強型圖元文件設備場景添加一條注釋信息
GdiFlush 執行任何未決的繪圖操作
GdiGetBatchLimit 判斷有多少個GDI繪圖命令位於隊列中
GdiSetBatchLimit 指定有多少個GDI繪圖命令能夠進入隊列
GetArcDirection 畫圓弧的時候,判斷當前採用的繪圖方向
GetBkColor 取得指定設備場景當前的背景顏色
GetBkMode 針對指定的設備場景,取得當前的背景填充模式
GetBrushOrgEx 判斷指定設備場景中當前選定刷子起點
GetCurrentObject 獲得指定類型的當前選定對象
GetCurrentPositionEx 在指定的設備場景中取得當前的畫筆位置
GetEnhMetaFile 取得磁碟文件中包含的一個增強型圖元文件的圖元文件句柄
GetEnhMetaFileBits 將指定的增強型圖元文件復制到一個內存緩沖區里
GetEnhMetaFileDescription 返回對一個增強型圖元文件的說明
GetEnhMetaFileHeader 取得增強型圖元文件的圖元文件頭
GetEnhMetaFilePaletteEntries 取得增強型圖元文件的全部或部分調色板
GetMetaFile 取得包含在一個磁碟文件中的圖元文件的圖元文件句柄
GetMetaFileBitsEx 將指定的圖元文件復制到一個內存緩沖區
GetMiterLimit 取得設備場景的斜率限制(Miter)設置
GetNearestColor 根據設備的顯示能力,取得與指定顏色最接近的一種純色
GetObjectAPI 取得對指定對象進行說明的一個結構
GetObjectType 判斷由指定句柄引用的GDI對象的類型
GetPath 取得對當前路徑進行定義的一系列數據
GetPixel 在指定的設備場景中取得一個像素的RGB值
GetPolyFillMode 針對指定的設備場景,獲得多邊形填充模式
GetROP2 針對指定的設備場景,取得當前的繪圖模式
GetStockObject 取得一個固有對象(Stock)
GetSysColorBrush 為任何一種標准系統顏色取得一個刷子
GetWinMetaFileBits 通過在一個緩沖區中填充用於標准圖元文件的數據,將一個增強型圖元文件轉換成標准windows圖元文件
InvertRect 通過反轉每個像素的值,從而反轉一個設備場景中指定的矩形
LineDDA 枚舉指定線段中的所有點
LineTo 用當前畫筆畫一條線,從當前位置連到一個指定的點
MoveToEx 為指定的設備場景指定一個新的當前畫筆位置
PaintDesktop 在指定的設備場景中描繪桌面牆紙圖案
PathToRegion 將當前選定的路徑轉換到一個區域里
Pie 畫一個餅圖
PlayEnhMetaFile 在指定的設備場景中畫一個增強型圖元文件
PlayEnhMetaFileRecord 回放單獨一條增強型圖元文件記錄
PlayMetaFile 在指定的設備場景中回放一個圖元文件
PlayMetaFileRecord 回放來自圖元文件的單條記錄
PolyBezier 描繪一條或多條貝塞爾(Bezier)曲線
PolyDraw 描繪一條復雜的曲線,由線段及貝塞爾曲線組成
Polygon 描繪一個多邊形
Polyline 用當前畫筆描繪一系列線段
PolyPolygon 用當前選定畫筆描繪兩個或多個多邊形
PolyPolyline 用當前選定畫筆描繪兩個或多個多邊形
Rectangle 用當前選定的畫筆描繪矩形,並用當前選定的刷子填充
RoundRect 用當前選定的畫筆畫一個圓角矩形,並用當前選定的刷子在其中填充
SelectClipPath 將設備場景當前的路徑合並到剪切區域里
SelectObject 為當前設備場景選擇圖形對象
SetArcDirection 設置圓弧的描繪方向
SetBkColor 為指定的設備場景設置背景顏色
SetBkMode 指定陰影刷子、虛線畫筆以及字元中的空隙的填充方式
SetBrushOrgEx 為指定的設備場景設置當前選定刷子的起點
SetEnhMetaFileBits 用指定內存緩沖區內包含的數據創建一個增強型圖元文件
SetMetaFileBitsEx 用包含在指定內存緩沖區內的數據結構創建一個圖元文件
SetMiterLimit 設置設備場景當前的斜率限制
SetPixel 在指定的設備場景中設置一個像素的RGB值
SetPixelV 在指定的設備場景中設置一個像素的RGB值
SetPolyFillMode 設置多邊形的填充模式
SetROP2 設置指定設備場景的繪圖模式。與vb的DrawMode屬性完全一致
SetWinMetaFileBits 將一個標准Windows圖元文件轉換成增強型圖元文件
StrokeAndFillPath 針對指定的設備場景,關閉路徑上打開的所有區域
StrokePath 用當前畫筆描繪一個路徑的輪廓。打開的圖形不會被這個函數關閉
UnrealizeObject 將一個刷子對象選入設備場景之前,如刷子的起點准備用SetBrushOrgEx修改,則必須先調用本函數
WidenPath 根據選定畫筆的寬度,重新定義當前選定的路徑

⑩ c語言在vc6.0中的圖形函數是什麼

在Windows編程中使用GDI繪圖。當然你也可以用EasyX之類的圖形庫。

閱讀全文

與用vc編譯的圖形函數相關的資料

熱點內容
hadoop解壓縮 瀏覽:421
30歲程序員生計 瀏覽:472
蘋果iOS反編譯軟體 瀏覽:460
當一個體面的程序員是什麼體驗 瀏覽:291
聯想安裝哪個編譯器 瀏覽:446
蘋果手機如何創建app組 瀏覽:40
如何知道伺服器開通了什麼埠 瀏覽:34
動態ip地址由dhcp伺服器來分配 瀏覽:800
aes128加密c 瀏覽:396
成為插畫師pdf 瀏覽:325
奧特曼系列ol為什麼進不去伺服器 瀏覽:742
盛世伺服器怎麼開啟 瀏覽:87
編譯安卓源碼修改定位 瀏覽:200
加密上市是什麼意思 瀏覽:802
一年程序員面試 瀏覽:174
多個jpg合成pdf 瀏覽:929
pdf轉word是圖片 瀏覽:941
程序員看不懂怎麼辦 瀏覽:273
linux操作系統題 瀏覽:769
單片機無符號數加法 瀏覽:231