導航:首頁 > 源碼編譯 > vc圖形演算法DX截圖

vc圖形演算法DX截圖

發布時間:2023-04-14 15:04:49

Ⅰ 如何在VC++6.0中使用C語言簡單的繪圖畫圖功能

用 VC 實現 繪圖相對還是比較容易的.

  1. 定義好圖元類, 成員 主要有 位置, 線型,填充類型等; 實現肢鄭山繪圖方法: 調用 CDC 類的 繪圖函數實現繪制;

  2. 定義好圖元的存儲管理, 可以用鏈表,或數組;

  3. 如果 用 文檔-視圖 框架,在視圖的 OnDraw 方法中, 調用各圖元的繪圖方法, 完成 圖形的顯示;

如果沒用文檔-視圖 框架,則在 窗口的 WM_PAINT事件中,完成繪圖;

4. 設計好交互, 在 WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE等事件中, 進行具體實現. 主叢沖要新建 , 改變大小, 拖動等.

這樣基本可以實現 簡單的 繪圖了.


可百歷中度搜索

想用mfc做一個繪圖系統,畫圓直線矩形填充顏色和平移

有我幫網友作的一個例子.

Ⅱ 關於VC++6.0如何實現圖形編程的問題

VC中沒有graphics.h和相應的庫。談亮拿(它多半是TC的東西。)

VC編圖形要用MFC,或Win32。(注意這是含搭兩類不同的工程,建鍵大工程的時候注意)

Ⅲ 在線等 VC++關於載入讀取JPG,PNG,BMP 或者DX 圖像格式的問題

1.很小白的方法,直接改擴展名,自己知道是什麼類型的就好
2.用二進制將圖片寫進文件,使用的時候再從文件中抽取出來,可以旅納定義一個類似於這樣的結構體
struct PICTURE_INFO
{
TCHAR name[50]; //文件名
UINT size; //文件大小
TCHAR *pData; //保存數拆埋沒據的指針
}
或者把圖片做為二進制資源加進exe文件
3.也就是你說的直接對文件進行加密,比如說des演算法,網上都有的
4.其實就算你再怎麼加密,在明白人眼裡都是不安全的,你液指看看那麼多公司的游戲只要登陸pc沒過多久就會被破解就知道了。所以說可以隨便找一種相對簡單的方法就可以了,畢竟放君子不妨小人嘛 :) 。。。。。。

繪圖到窗體上又是另外一個問題了,atl中有個CImage類(#include <atlimage.h>),使用Load函數載入圖片,得到一個HBITMAP句柄,如果是基於對話框的程序,添加個CStatic控制項,設置顯示圖片,然後SetBitmap就能顯示了。

Ⅳ 關於圖形學里中心畫圓演算法的vc++的程序實現~急用~必須能運行得出來結果的!!

測試過了能用,MFC源碼如下
void CTest1View:: roundMid(int x1,int y1,int R,CDC* pDC)

{

int x=0,y=R;

int d=1-R; //起點(0,R),下一點中點蘆逗(1,R-0.5),d=1*1+(R-0.5)*(R-0.5)-R*R=1.25-R,d只參與整數運算,所以小數部分可省略

while(y>x) //y>x即第一象限的第2區八分圓滑鍵

{

pDC->SetPixel(x+x1,y+y1,RGB(255,0,0)); //圓陪讓賣心(x1,y1),畫點時直接相加平移,畫2區

pDC->SetPixel(y+x1,x+y1,RGB(255,0,0)); //畫1區

pDC->SetPixel(-x+x1,y+y1,RGB(255,0,0)); //畫3區

pDC->SetPixel(-y+x1,x+y1,RGB(255,0,0)); //畫4區

pDC->SetPixel(-x+x1,-y+y1,RGB(255,0,0)); //畫5區

pDC->SetPixel(-y+x1,-x+y1,RGB(255,0,0)); //畫6區

pDC->SetPixel(x+x1,-y+y1,RGB(255,0,0)); //畫7區

pDC->SetPixel(y+x1,-x+y1,RGB(255,0,0)); //畫8區

if(d<0)

d=d+2*x+3; //d的變化

else

{

d=d+2*(x-y)+5; //d<=0時,d的變化

y--; //y坐標減1

}

x++; //x坐標加1

}

}

Ⅳ 利用C語言編寫 能夠畫出任意的直線演算法程序(利用畫點函數)

上次剛寫過,在VC下運行的,
int dx,dy,incrE,incrNE,d,x,y;

if ((point[1].x-point[0].x)==0){ //垂直的直線
x=point[0].x;
for(y=point[0].y;y<point[1].y;y++)
pDC->SetPixel(x,y,50);
}
else if(abs((point[1].y-point[0].y)/(point[1].x-point[0].x))<=1){ //斜率 -1到 1 之間
dx=point[1].x-point[0].x;
dy=point[0].y-point[1].y;
d=dx-2*dy;

incrE=-2*dy;
incrNE=2*(dx-dy);
x=point[0].x,y=point[0].y;
pDC->SetPixel(x,y,50);
if(point[0].y>point[1].y){
while(x<point[1].x)
{
if(d>=0){
d+=incrE;
x++;
}
else
{d+=incrNE;
x++;
y--;
}
pDC->SetPixel(x,y,50);
}
}
else if(point[0].y<=point[1].y){
dy=point[1].y-point[0].y;
incrE=-2*dy;
incrNE=2*(dx-dy);
x=point[0].x,y=point[0].y;
pDC->SetPixel(x,y,50);
while(x<point[1].x)
{
if(d>=0){
d+=incrE;
x++;
}
else
{d+=incrNE;
x++;
y++;
}
pDC->SetPixel(x,y,50);
}
}
}
else { //斜率 <-1 和 >1的直線
if(point[1].x>=point[0].x){
dx=point[1].x-point[0].x;
dy=point[1].y-point[0].y;
d=2*dx-dy;
incrE=2*dx;
incrNE=2*(dx-dy);
x=point[0].x,y=point[0].y;
pDC->SetPixel(x,y,50);
while(x<point[1].x)
{
if(d<0){
d+=incrE;

y++;

}
else
{d+=incrNE;
pDC->SetPixel(x,y,50);
x++;
y++;
}
pDC->SetPixel(x,y,50);
}
}
else if((point[1].y-point[0].y)/(point[1].x-point[0].x)<-1){
dx=point[1].x-point[0].x;
dy=point[0].y-point[1].y;
d=2*dx-dy;
incrE=2*dx;
incrNE=2*(dx-dy);
x=point[0].x,y=point[0].y;
pDC->SetPixel(x,y,50);
while(y<point[1].y)
{
if(d>0){
d+=incrE;
y++;

}
else
{d+=incrNE;
x--;
y++;
}
pDC->SetPixel(x,y,50);
}

}

}

Ⅵ VC++ 6.0編寫計算機圖形學中的種子填充演算法,想用遞歸的八向連通域,求助!

用八鄰域的話,有重復的圓旁,這個你要脊腔隱考慮到,一般都用四鄰櫻廳域的,八鄰域你可以設置一個標志數組,對於已經處理的點就不管了

Ⅶ 請教vc++高手講解一下下面的圖像處理程序

.旋轉圖像(含對話框 這里對話框需要自己建立) void CCimageProcessingView::OnGeomRota() { //獲取指向文檔的指針 CCimageProcessingDoc* pDoc = GetDocument(); //指向DIB的指針 LPSTR lpDIB; //鎖定DIB lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB()); // 縮放比率兆冊含 int iRotaAngle; // 創建對話框 CDlgGeoRota dlgPara; // 初始化變數值 dlgPara.m_iRotaAngle = 90; /姿李/ 顯示對話框,提示用戶設定旋轉角度 if (dlgPara.DoModal() != IDOK) { // 返回 return; } // 獲取用戶設定的平移量 iRotaAngle = dlgPara.m_iRotaAngle; // 刪除對話框 delete dlgPara; //創建新DIB HDIB hNewDIB=NULL; //設置游標狀態為等待狀態 BeginWaitCursor(); //調用RotateDIB函數旋轉族笑DIB圖象 hNewDIB=(HDIB)::RotateDIB(lpDIB,iRotaAngle); //旋轉成功 if (hNewDIB) { //替換原來的DIB圖象為新的DIB pDoc->ReplaceHDIB(hNewDIB); //更新DIB圖象的大小和調色板 pDoc->InitDIBData(); //設置文檔修改標記 pDoc->SetModifiedFlag(TRUE); //調節滾動視圖大小 SetScrollSizes(MM_TEXT,pDoc->GetDocSize()); //更新所有視圖 pDoc->UpdateAllViews(NULL); } else { //提示信息 MessageBox("實現圖象旋轉失敗!"); } //解除鎖定 ::GlobalUnlock((HGLOBAL) pDoc->GetHDIB()); //結束游標等待狀態 EndWaitCursor(); } /************************************************************************* * * 函數名稱: * * RotateDIB () * * 參數: * * LPSTR lpDIB //指向源DIB圖像指針 * * int iAngle * 說明: * * 該函數用來實現DIB圖像的旋轉。 * ************************************************************************/ HGLOBAL WINAPI RotateDIB(LPSTR lpDIB,int iAngle) { //原圖象寬度 LONG lWidth; //原圖象高度 LONG lHeight; //旋轉後圖象寬度 LONG lNewWidth; //旋轉後圖象高度 LONG lNewHeight; //原圖象的顏色數 WORD wNumColors; //原圖象的信息頭結構指針 LPBITMAPINFOHEADER lpbmi,lpbmi0; //指向原圖象和目的圖象的像素的指針 LPBYTE lpSrc,lpDst; //指向原圖像像素的指針 LPBYTE lpDIBBits; //指向旋轉後圖像(像素)的指針 LPBYTE lpNewDIBBits; LPSTR lpNewDIB; //旋轉後新的DIB句柄 HDIB hDIB;

Ⅷ 關於vc+dx做游戲的問題

BOOL bGotMsg;
while( WM_QUIT != msg.message )
{

bGotMsg = PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE );

if( bGotMsg )
{ // 有消息的處理消息
if( 0 == TranslateAccelerator( hMainWnd, 0, &msg ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
else
{ // 無消息的梁廳配時候處理游戲邏輯和圖形伏擾等。橡指
UpdateGame();
RenderGame();
}
}

Ⅸ 在VC環境下,用directX在窗口中繪圖,切換到桌面然後切換回來,窗口無顯示

剛好最謹鄭近看的一本書上有這個問題

Direct3D有兩個狀亮鉛態工作狀態和丟失狀態
工作狀態是正常狀態 如果程序失去焦點就進入丟失狀態 d3d是渲染設備就會丟失 從而不在渲染圖形 這種情況下 渲染失敗時 所有圖形渲染操作也會返回 運行成功代碼 只有IDirect3DDevice9::Present()介面函數會返回錯誤代碼
D3DERR_DEVICELOST

丟失態的處理

IDirect3DDevice::Reset()是設備丟失後設備對象可以唯一調用的函數 但是如果程序釋放了所有D3DPOOL_DEFAULT資源 Reset()的調用也將失敗

IDirect3DDevice::TestCooperativeLevel()介面函數用來確定設備時候能夠恢復若返回 D3D_OK表示設備敬晌好可以回復

恢復前應該銷毀所有顯存資源 和 所有交換鏈

Ⅹ 如何用C++編directx

首先,檢查一下你自己的C++是不是真的學會了。什麼是介面繼承?指針的強制類型轉換有幾種?指針的指針怎麼用?指針和引用有什麼聯系?const指針和指向const的指針有什麼不同?

其次,你的Windows基本編程(不是MFC,別管MFC,是垃圾)是不是明白了。handle和指針有什麼不一樣?怎樣創建多個窗口?怎樣訪問一個點陣圖裡面的像素?怎樣把一個點陣圖文件顯示在任意顯示模式的窗口中?什麼是CreateDIBSection?

最後,可以學DirectX了。首先就是畫一個平面的綠色三角形。然後畫一個彩色的三角形。然後畫一個帶貼圖的三角形。然後畫一個三維的三角形。然後畫一個三維的帶光照的三角形。那麼基本上就學會了。

剩下了,就是怎樣把光學理論用於畫三維圖形了.....這個就很有意思了。

閱讀全文

與vc圖形演算法DX截圖相關的資料

熱點內容
怎麼使用access的命令按鈕 瀏覽:897
有點錢app在哪裡下載 瀏覽:832
博途v15解壓後無法安裝 瀏覽:203
什麼是根伺服器主機 瀏覽:436
安卓手游怎麼申請退款 瀏覽:553
安卓系統如何分享網頁 瀏覽:278
ad如何編譯pcb工程 瀏覽:412
除了滴滴app哪裡還能用滴滴 瀏覽:399
截圖怎麼保存文件夾然後壓縮 瀏覽:8
幻影伺服器怎麼樣 瀏覽:27
具體哪些廣東公司招程序員 瀏覽:870
嵌入式編譯器教程 瀏覽:306
ssl數據加密傳輸 瀏覽:86
51單片機定時器方式2 瀏覽:331
命令行查看開機時間 瀏覽:813
python微博復雜網路分析 瀏覽:550
rf3148編程器 瀏覽:505
浙江標准網路伺服器機櫃雲主機 瀏覽:588
設置網路的伺服器地址 瀏覽:600
java圖形界面設計 瀏覽:751