**中的注釋還是很清楚的,在此不羅嗦了:
void cgdi畫刷dlg::gdibrushdrawimage(cdc* pdc)
; //填充閉合區域
g.fillclosedcurve(&solidbrush,pt,4,fillmodealternate,1.0);
//構造比和多邊形
pointf p[5]=;
//填充多邊形
solidbrush.setcolor(color(255,155,0,200));
g.fillpolygon(&solidbrush,p,5);
/*繪製正夜曲線
* 對應的數學公式為:
* r=a*sin(n*angle)
* x=r*cos(angle)
* y=r*sin(angle)
*其中a相當於葉子的長度,n是決定葉子數量的乙個常量,angle相當於葉子的旋轉角度*/
int cx,cy;
crect rc;
getclientrect(&rc);
//以當前視窗的正中心繪製正夜曲線
cx=rc.width()/2;
cy=rc.height()/2;
int leaflen=200;//設定葉子長度
int leafnum=20;
float pi=3.14;
int x,y,x2,y2,r;
graphicspath temppath(fillmodealternate);
for(float i=0.0f;icolumncount-1)
hatchbrush tempbrush(hatchstyle(i),black,white);
g.fillrectangle(&tempbrush,rol*40,column*40,35,35);//填充矩形區域
g.drawrectangle(&pen,rol*40,column*40,35,35);//繪製邊框
str.format(l"%d",i);
int strlen=str.getlength();
memcpy(widechar,str.getbuffer(),sizeof(widechar));
stringformat format;
rectf rect(rol*40,column*40,35,35);
format.setalignment(stringalignmentcenter);
format.setlinealignment(stringalignmentcenter);
g.drawstring(widechar,strlen,&ft,rect,&format,&redbrush);
rol++;
} /*設定畫刷原點*/
color black(255,0,0,0),white(255,255,255,255);
hatchbrush hatchbrush(hatchstyle(20),black,white);
//在垂直方向填充8個矩形,使用預設的畫刷原點
for(int i=0;i<8;i++)
g.fillrectangle(&hatchbrush,0,i*50,100,50);
//使用不同的畫刷原點
for(int i=0;i<8;i++)
/*使用紋理畫刷,紋理化刷實際是將在目標區域進行平鋪*/
pen pen(color(255,0,0,255),2);
solidbrush brush(color(255,0,0,0));
font font(l"宋體",20);
texturebrush texturebrush(&image);//構造紋理化刷使用預設方式
g.fillellipse(&texturebrush,rc1);
g.drawellipse(&pen,rc1);
g.drawstring(l"原始大小",6,&font,pointf(40,220),null,&brush);
//方法二,只使用給定的部分區域
texturebrush tbrush2(&image,rect(0,0,60,50));
g.fillellipse(&tbrush2,rc2);
g.drawellipse(&pen,rc2);
g.drawstring(l"只用部分區域",6,&font,pointf(240,220),null,&brush);
texturebrush tbrush3(&image);
tbrush3.settransform(&matrix(0.5f,0.0f,0.0f,0.5f,0.0f,0.0f));//對話刷進行50%的縮放
g.fillellipse(&tbrush3,rc3);
g.drawellipse(&pen,rc3);
g.drawstring(l"比例縮小圖",6,&font,pointf(440,220),null,&brush);
}
為了簡單,我把所有**放在了同乙個函式中,繪製的時候會覆蓋。可以注釋掉一部份來看效果
GDI 遊戲程式設計之2 GDI 基本使用
gdi 就是 window系統提供了一些函式,gdi 就是.net裡面對這些函式的封裝,這些函式主要是在system.drawing 裡面,他包含了 繪圖裝置,畫筆,畫刷,顏色等各種東西,反正就是那些視窗控制項什麼的都是用他畫出來的,比如 按鈕,選單 滾動條什麼的。gdi gdi 就是window系...
mfc使用不同型別的畫刷填充矩形
畫刷是在畫刷畫封閉曲線時用來填充的顏色,mfc的cbrush類封裝了windowsgdi畫刷,通過它,對cdc類所繪製的封閉圖形的填充,可以填充顏色和紋理。首先給出本次的demo 下面給出核心 在ondraw函式中實現繪圖操作 除此之外,mfc中還可以使用位圖畫刷來進行封閉圖形的填充,方法如上。cb...
基礎程式設計 一些刷題時的小點
比較零碎,整理一下小點 scanf問題 常用math函式 floor double x 和ceil double x include include intmain 6 556sqrt double x log double x round double x memset string.h標頭檔案 ...