mfc绘制直角坐标系

DrawCoordinate(CPoint(100,250), 200, 6, 150, 10);
}

// 顶点坐标, x轴长度, x轴刻度数(含原点), y轴长度, y轴刻度数(含原点)
void CTestDlg::DrawCoordinate(CPoint point, int xLen, int xNum, int yLen, int yNum)
{
int x = xLen + 5;
int y = yLen + 5;

CDC *pDC = GetDC();
pDC->SetBkMode(TRANSPARENT); // 设置透明
pDC->MoveTo(point);
pDC->LineTo(CPoint(point.x+x, point.y)); // 绘制x轴
pDC->MoveTo(point);
pDC->LineTo(CPoint(point.x, point.y-y)); // 绘制y轴
pDC->TextOut(point.x-5, point.y+5, _T("0"));
pDC->TextOut(point.x+x+20, point.y-5, _T("X"));
pDC->TextOut(point.x-5, point.y-y-20, _T("Y"));

// 计算刻度宽度
int x_width = xLen / xNum;
int y_width = yLen / yNum;
int x_pixel = 0; // 当前x坐标
int y_pixel = 0; // 当前y坐标

for(int i=0; i<xNum; i++)
{
x_pixel = i*x_width;
pDC->MoveTo(CPoint(point.x+x_pixel, point.y-2)); // 绘制x轴刻度
pDC->LineTo(CPoint(point.x+x_pixel, point.y+4));

if(i > 0)
{
CString str;
str.Format(_T("%d"), i);
pDC->TextOut(point.x+x_pixel-2, point.y+3, str);
}
}

for(int j=0; j<yNum; j++)
{
y_pixel = j*y_width;
pDC->MoveTo(CPoint(point.x-2, point.y-y_pixel)); // 绘制y轴刻度
pDC->LineTo(CPoint(point.x+4, point.y-y_pixel));

if(j > 0)
{
CString str;
str.Format(_T("%d"), j);
pDC->TextOut(point.x-15, point.y-y_pixel-6, str);
}
}

ReleaseDC(pDC);
}void CTestDlg::OnButtonDraw()
{
DrawCoordinate(CPoint(100,250), 200, 6, 150, 10);
}

// 顶点坐标, x轴长度, x轴刻度数(含原点), y轴长度, y轴刻度数(含原点)
void CTestDlg::DrawCoordinate(CPoint point, int xLen, int xNum, int yLen, int yNum)
{
int x = xLen + 5;
int y = yLen + 5;

CDC *pDC = GetDC();
pDC->SetBkMode(TRANSPARENT); // 设置透明
pDC->MoveTo(point);
pDC->LineTo(CPoint(point.x+x, point.y)); // 绘制x轴
pDC->MoveTo(point);
pDC->LineTo(CPoint(point.x, point.y-y)); // 绘制y轴
pDC->TextOut(point.x-5, point.y+5, _T("0"));
pDC->TextOut(point.x+x+20, point.y-5, _T("X"));
pDC->TextOut(point.x-5, point.y-y-20, _T("Y"));

// 计算刻度宽度
int x_width = xLen / xNum;
int y_width = yLen / yNum;
int x_pixel = 0; // 当前x坐标
int y_pixel = 0; // 当前y坐标

for(int i=0; i<xNum; i++)
{
x_pixel = i*x_width;
pDC->MoveTo(CPoint(point.x+x_pixel, point.y-2)); // 绘制x轴刻度
pDC->LineTo(CPoint(point.x+x_pixel, point.y+4));

if(i > 0)
{
CString str;
str.Format(_T("%d"), i);
pDC->TextOut(point.x+x_pixel-2, point.y+3, str);
}
}

for(int j=0; j<yNum; j++)
{
y_pixel = j*y_width;
pDC->MoveTo(CPoint(point.x-2, point.y-y_pixel)); // 绘制y轴刻度
pDC->LineTo(CPoint(point.x+4, point.y-y_pixel));

if(j > 0)
{
CString str;
str.Format(_T("%d"), j);
pDC->TextOut(point.x-15, point.y-y_pixel-6, str);
}
}

ReleaseDC(pDC);
}

当然你也可以通过定义POINT数组,数组中记录每个点的坐标,接着使用CDC的PolyLineTo或PolyLine等多边形函数进行线段描绘,效果一样,看你喜欢哪种了有一个setpitch的指令,你可以搜索一下用画线的方法,输出
比如一个箭头就画三条线
喜欢阅读
  • 宠婚入骨:娇妻来袭

    宠婚入骨:娇妻来袭

    一场阴谋,迫使形婚的两人意外的假戏真做。沈薇薇从此堕入顾家大少的魔掌,纵使婆婆不爱,小姑子不待见,沈薇薇依然坚强挺过,却终因误会做了甩手掌柜,带娃离开。两年后再度重逢,他却像中了蛊一样对她欲罢不能。“顾琛,能不能放开我,我们早就已经两不相欠!”顾大总裁却邪魅一笑,在她耳边轻声说道:“不能,因为……我的心你还没还呢!”

  • 冷情王:独宠下堂妃

    冷情王:独宠下堂妃

    乾木木把算盘打的劈啪作响,随即悠然走到男人面前“王爷,我做了你一百多天的王妃,好歹给点酬劳吧?一百万两应该不多吧?陪吃陪睡陪玩,每天才收一万两……”男人咬牙切齿的扔出一叠银票和一张休书,冷冷地从牙缝挤出一个字“滚!”她嫣然一笑捡起地上的休书和银票,转身与他擦肩而过时却是泪眼婆娑。再见时,她站在常胜将军身侧,朝堂之上以女将军之名接受着皇上的嘉奖,完全无视男人捉摸不透的眼神,战争爆发,她随军出征,被北国皇帝俘虏制造假死之后,他站在她的面前,全身血污,对她伸手“我的王妃,我来接你回家。”看着男人深爱的眼神,她凄然一笑,含泪的眼眸看着北国的帝皇,拥进他的怀中,“我的王,我认识他吗?”

  • 龙武军神

    龙武军神

    五年前,他家破人亡,被迫逃亡外乡;五年后,他低调归来,家乡鲜有人知他正是威名远播的帝国军神,那些仇敌也开始蠢蠢欲动,欲要斩草除根……

  • 终结者2之吃鸡王者

    终结者2之吃鸡王者

    退役的WCG世界亚军队长苏南,重回世界之巅!“吃鸡,我是职业的……”

  • 我的淘气王妃

    我的淘气王妃

    所有人都不相信,原来笨蛋也会有春天,当一个叫王妃的普通大一新生,遇见了混世魔王夏何并且一见钟情,她的人生仿佛变得不再平庸。夏何,一个IQ不知道有多少个零冷酷又无情的完美少年,他的人生轨迹从懂事开始就在预料之中度过,宛若魔法师一样,把所有的人看个通透。有一天,一个女孩儿出现在他的面前,先是晴天霹雳,然后人生轨迹的桥梁瞬间崩塌,安静变得不再安静。“我喜欢你!”王妃红着脸蛋对夏何说。冷笑一声,夏何回答,“像你这种长得丑还不知道贴墙走的笨蛋我才不喜欢。”

  • 冷血

    冷血

    当黑暗吞噬光明时,光明也在渐渐的复生,正义的利刃永远掌握在正义使者手中!

  • 龙武神兵

    龙武神兵

    三年前一场绝密任务,让叶兴龙差点命丧黄泉,幸好被鬼医门掌门卫正道所救,三年后,当叶兴龙再次下山,整个世界却早已发生了未知的变化,原来,自己之前所看到的那个世界,只是表象!而现实中,修真者并非一个传说!

  • 10018

    10018

    世代隐居山林的武术世家子弟万林携带兽王小花豹机缘巧合地参加了军队特战部队,并以他们为核心组建了“花豹突击队”。主人公一人一兽绝世的武功和奇异的兽能,统领山间猛兽解救战友于危难,与一切邪恶势力展开了一系列殊死搏斗。

  • 猜你喜欢
    热门推荐
  • rabbitmq 重新启动
  • 哔哩哔哩手机缓存位置
  • 一个或多个网络属性页
  • jinanrenshikaos
  • 阿卡波糖杂质对照品
  • 无间道1傻强为什么死
  • win764系统镜像纯净版
  • deloach 仙粉黛2010
  • 嘉兴文化影视频道重播
  • abap delete where
  • small cities china
  • 镇魔曲小说在线阅读
  • 沉溺by洛樊语 百度云
  • 男演员张弛个人资料
  • 怎么看以前的qq悄悄话
  • ipod touch5 刷回ios8
  • 欲魔的精奴养成 下载
  • 维多利亚秘密香水喷雾
  • 高考提分秘籍
  • 校园最强修真杨旭海棠
  • All Right Reserved 安福网