导航:首页 > 源码编译 > 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截图相关的资料

热点内容
android平滑滚动效果 浏览:841
什么是编译器指令 浏览:219
微控制器逻辑命令使用什么总线 浏览:885
程序员在学校里是学什么的 浏览:601
oraclejava数据类型 浏览:890
程序员考注册会计师 浏览:957
怎么使用access的命令按钮 浏览:899
有点钱app在哪里下载 浏览:832
博途v15解压后无法安装 浏览:205
什么是根服务器主机 浏览:438
安卓手游怎么申请退款 浏览:555
安卓系统如何分享网页 浏览:278
ad如何编译pcb工程 浏览:414
除了滴滴app哪里还能用滴滴 浏览:399
截图怎么保存文件夹然后压缩 浏览:8
幻影服务器怎么样 浏览:28
具体哪些广东公司招程序员 浏览:871
嵌入式编译器教程 浏览:307
ssl数据加密传输 浏览:87
51单片机定时器方式2 浏览:332