Visual C++ MFC编程 绘制直线、圆、自行车

1.建立工程
右方空白处输入工程名称,然后点击确定
在这里插入图片描述
选中基本对话框,点击完成
在这里插入图片描述
将右边控件中的图像控件拖到这上面去,然后点击右键,改成位图类型
在这里插入图片描述
2.界面设计
布局各自随意,这里用到了静态文本,编辑框,组框,按钮。
(当然你写的时候可以布局一部分,然后编写该部分的代码并且测试)
在这里插入图片描述
3.按钮事件响应
布局完成后,双击其中一个按钮会自动设置好函数,你只需要进行编写就行。
(1)绘制直线
这里我们使用的是DDA法绘制直线,当然Bresenham方法也可以,后面设置线宽时用的便是这个算法。

void CExperiment1Dlg::OnOK() 
{
   
	float s1,s2,s6,s7;	//起始点坐标
	int s3,s4,s5;		//RGB
	CString str1,str2,str3,str4,str5,str6,str7;
	//IDC_EDIT1这是编辑框的id,右键该控件就可以看见
	GetDlgItemText(IDC_EDIT1,str1);
	GetDlgItemText(IDC_EDIT2,str2);
	GetDlgItemText(IDC_EDIT3,str3);
	GetDlgItemText(IDC_EDIT4,str4);
	GetDlgItemText(IDC_EDIT5,str5);
	GetDlgItemText(IDC_EDIT6,str6);
	GetDlgItemText(IDC_EDIT7,str7);
	s1=atof(str1);//将字符串转化成float型
	s2=atof(str2);
	s6=atof(str6);
	s7=atof(str7);
	s3=atoi(str3);//那当然atoi就是将字符串转换成整型
	s4=atoi(str4);
	s5=atoi(str5);
	CDC *pDC=GetDlgItem(IDC_STATIC)->GetDC();
	Line1(pDC,s1,s6,s2,s7,s3,s4,s5);
}
void Line1(CDC *pDC,int xs,int ys,int xe,int ye,int R,int G,int B)
{
   
	int dx,dy,t; float k,x,y; 
	if(xs>xe) 
	{
   
		t=xe,xe=xs,xs=t; 
		t=ye,ye=ys,ys=t; 
	} 
	dx=xe-xs,dy=ye-ys; k=(float)dy/dx; 
	if(abs(dx)>=abs(dy)) 
	{
    
		y=ys; 
		for(x=xs;x<=xe;x++) 
			pDC-
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值