精华内容
下载资源
问答
  • 但是不知道在这个框架下怎样绘图,是不是可以提供一个绘图的Demo呢?Demo里使用MoveTo,LineTo绘制几条线段即可。我的需求是,在一个窗口中既有折线图又有饼图。</p><p>该提问来源于开源项目ÿ...
  • VC++绘图编程----怎样绘图

    千次阅读 2012-10-07 17:16:11
    (4)调用DC对象中的各个函数进行绘图 (5)恢复系统原有的GDI对象----该对象是由selectobject返回值。 (6)释放GDI对象占用的系统资源-》通过GDI对象的DeleteObject函数释放 例如在OnPaint消息响应函数中


    一般遵循以下步骤;

    (1)定义DC并创建DC

    (2)定义并创建GDI对象

    (3)调用dc对象的selectobject将GDI对象选入DC中

    (4)调用DC对象中的各个函数进行绘图

    (5)恢复系统原有的GDI对象----该对象是由selectobject返回值。

    (6)释放GDI对象占用的系统资源-》通过GDI对象的DeleteObject函数释放

    例如在OnPaint消息响应函数中:


    void CMyDrawDlg::OnPaint()
    {

    CPaintDC dc(this); (1)定义DC并创建DC
     
     // TODO: Add your message handler code here
       
    CPen newPen(PS_SOLID,1,RGB(255,0,0));(2)定义并创建GDI对象
    CPen *oldPen=dc.SelectObject(&newPen);(3)调用dc对象的selectobject将GDI对象选入DC中

    //(4)调用DC对象中的各个函数进行绘图

    dc.LineTo(20,20); //画线

    dc.Ellipse(200,23,450,234);// 画椭圆
    dc.SelectObject(oldPen);(5)恢复系统原有的GDI对象----该对象是由selectobject返回值。
    newPen.DeleteObject();(6)释放GDI对象占用的系统资源-》通过GDI对象的DeleteObject函数释放
       
    }

     

     

    怎样画位图:还是六个步骤

    void CMyDrawDlg::OnPaint()
    {CPaintDC dc(this); // 
     
     
       CDC memDC;
       memDC.CreateCompatibleDC(&dc);//创建内存兼容的DC
       CBitmap bitmap;
       bitmap.LoadBitmap(IDB_BITMAP1);
       CBitmap *pOld=memDC.SelectObject(&bitmap);
      //(4)调用DC对象中的各个函数进行绘图
       dc.BitBlt(0,0,200,200,&memDC,0,0,SRCCOPY);//方式一
       dc.StretchBlt(210,210,200,200,&memDC,0,0,200,200,SRCCOPY);//方式二


       dc.SelectObject(pOld);
       bitmap.DeleteObject();
       
    }

    void CMyDrawDlg::OnPaint()//下面这个是演示将位图画到指定的Picture控件中去

    {
        CPaintDC dc(this); // device context for painting
        CStatic *pStaic = (CStatic*)GetDlgItem(IDC_PHOTO);//获取资源ID=IDC_PHOTO控件指针,蓝颜色代码,就是关键
        CBitmap bmp;                           
        bmp.Attach(m_hPhotoBitmap);    
        BITMAP bm;                              
        bmp.GetBitmap(&bm);                        
        CDC dcMem;
        dcMem.CreateCompatibleDC(GetDC());       
        CBitmap *poldBitmap=(CBitmap*)dcMem.SelectObject(bmp);
        CRect lRect;                           
        pStaic->GetClientRect(&lRect);           
        lRect.NormalizeRect();
        pStaic->GetDC()->StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(),
            &dcMem,0 ,0,bm.bmWidth,bm.bmHeight,SRCCOPY);

        dcMem.SelectObject(&poldBitmap);
    }

     

     补充知识:

    http://blog.csdn.net/zhangyulin54321/article/details/8098484

    展开全文
  • 回答:1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度)(defun c:LL ()(setvar "cmdecho" 1)(setq en (ssget(list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))(setq i 0)(setq ll 0)...

    回答:

    1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度)

    (defun c:LL ()

    (setvar "cmdecho" 1)

    (setq en (ssget(list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))

    (setq i 0)

    (setq ll 0)

    (repeat (sslength en)

    (setq ss (ssname en i))

    (setq endata (entget ss))

    (command "lengthen" ss "")

    (setq dd (getvar "perimeter"))

    (setq ll (+ dd ll))

    (setq i (1+ i))

    )

    (princ "所选线条总长为:")(princ ll)(princ)

    )

    2.标注所有线段(加载后只需框选所有线段便可得标注这些线段)

    (defun c:LLL ()

    (COMMAND "UCS" "")

    (setvar "cmdecho" 1)

    (SETVAR "OSMODE" 0)

    ;;选取需要测量的样条曲线、圆弧、直线、椭圆

    (setq en (ssget(list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))

    (setq i 0)

    ;;获取系统参数textsize

    (setq shh (getvar "textsize"))

    (setq str_hh (strcat "\n文字高度: "))

    (setq hh (getdist str_hh))

    (while hh

    (setvar "textsize" hh)

    (setq hh nil))

    ;;输入标注文字高度

    ;;循环开始

    (repeat (sslength en)

    (setq ss (ssname en i))

    (setq endata (entget ss))

    (command "lengthen" ss "")

    (setq dd (getvar "perimeter"))

    (princ (strcat "\n长度=" (rtos dd 2)))

    ;;寻找代表图层的字符串

    (setq aa (assoc 0 endata))

    ;;获取图层名称

    (setq aa1 (cdr aa))

    ;;判断线条种类

    (cond

    ((= aa1 "SPLINE")

    ;;如果是spline

    (progn

    (setq arcObj (VLAX-ENAME->VLA-OBJECT ss))

    (setq startPnt1 (vla-get-ControlPoints arcObj))

    (setq p1

    (vlax-safearray->list (vlax-variant-value startPnt1))

    )

    (setq x1 (car p1))

    (setq y1 (CADr p1))

    (setq z1 (CADdr p1))

    (setq pp1 (list x1 y1 z1))

    (repeat (- (/ (length p1) 3) 1)

    ;;循环,寻找最后一个控制点

    (setq p1 (cdddr p1))

    (setq x2 (car p1))

    (setq y2 (CADr p1))

    (setq z2 (CADdr p1))

    )

    (setq pp2 (list x2 y2 z2))

    )

    )

    ((= aa1 "LWPOLYLINE")

    ;;如果是LWPOLYLINE

    (progn

    (setq arcObj (VLAX-ENAME->VLA-OBJECT ss))

    (setq startPnt1 (vla-get-Coordinates arcObj))

    (setq p1

    (vlax-safearray->list (vlax-variant-value startPnt1))

    )

    (setq x1 (car p1))

    (setq y1 (CADr p1))

    (setq z1 (CADdr p1))

    (setq pp1 (list x1 y1 z1))

    (repeat (- (/ (length p1) 3) 1)

    ;;循环,寻找最后一个控制点

    (setq p1 (cdddr p1))

    (setq x2 (car p1))

    (setq y2 (CADr p1))

    (setq z2 (CADdr p1))

    )

    (setq pp2 (list x2 y2 z2))

    )

    )

    (t

    ;;如果是其他种类线条

    (progn

    (setq arcObj (VLAX-ENAME->VLA-OBJECT ss))

    (setq startPnt1 (vla-get-StartPoint arcObj))

    ;;获取起点

    (setq endPnt1 (vla-get-EndPoint arcObj))

    ;;获取终点

    (setq pp1

    (vlax-safearray->list (vlax-variant-value startPnt1))

    )

    (setq

    pp2 (vlax-safearray->list (vlax-variant-value endPnt1))

    )

    )

    )

    )

    (setq x1 (car pp1))

    (setq y1 (CADr pp1))

    (setq z1 (CADdr pp1))

    (setq x2 (car pp2))

    (setq y2 (CADr pp2))

    (setq z2 (CADdr pp2))

    (setq x (/ (+ x1 x2) 2))

    (setq y (/ (+ y1 y2) 2))

    (setq z (/ (+ z1 z2) 2))

    (setq pt (list x y z))

    ;;取得线段两端的中点

    (setq ang (angle pp1 pp2))

    ;;获取角度

    (if (> (* (/ ang pi) 180) 180)

    (setq ang (+ ang pi))

    )

    (command "text"

    "j"

    "bc"

    pt

    ""

    (* (/ ang pi) 180)

    (strcat "" (rtos dd 2))

    ""

    )

    (setq i (1+ i))

    )

    (prin1)

    )

    (prompt "\n <>在图中直接写出长度")

    (prin1)

    3.连续打断程序

    (defun c:br1 ()

    (command "break" pause "f" pause "@")

    )

    4.将CAD文字导入Excel表格

    (defun c:Q2()

    (setq ffn (getfiled "写出文件" "" "xls" 1))

    (princ "\n选取文字...")

    (setq ss (ssget))

    (setq ff (open ffn "w"))

    (setq i 0)

    (repeat (sslength ss)

    (setq ssn (ssname ss i))

    (setq ssdata (entget ssn))

    (setq sstyp (cdr (assoc 0 ssdata)))

    (if (or (= sstyp "TEXT") (= sstyp "MTEXT"))

    (progn

    (setq txt (cdr (assoc 1 ssdata)))

    (princ txt ff)

    (princ "\n" ff)

    )

    )

    (setq i (1+ i))

    )

    (close ff)

    (princ (strcat "\n写出文件: " ffn))

    (prin1)

    )

    5删除带颜色图元

    以下程序在别人的贴子里贴过.为了说明问题,今天再贴一次.

    改颜色的LISP程序

    (defun c:c1()(ssget)(command "chprop" "p" "" "c" "1" "") (princ))

    (defun c:c2()(ssget)(command "chprop" "p" "" "c" "2" "") (princ))

    (defun c:c3()(ssget)(command "chprop" "p" "" "c" "3" "") (princ))

    (defun c:c4()(ssget)(command "chprop" "p" "" "c" "4" "") (princ))

    (defun c:c5()(ssget)(command "chprop" "p" "" "c" "5" "") (princ))

    (defun c:c6()(ssget)(command "chprop" "p" "" "c" "6" "") (princ))

    (defun c:c7()(ssget)(command "chprop" "p" "" "c" "7" "") (princ))

    (defun c:c8()(ssget)(command "chprop" "p" "" "c" "8" "") (princ))

    你用C1 命令就可以将图元改为红色了.其余类似.

    删除红色图元

    (defun C:D1 (/ m A M)

    (setq m:err *error* *error* *merr*)

    (setvar "cmdecho" 0)

    (command "UNDO" "G")

    (prompt "选择图形")

    (setq A (ssget '((62 . 1)) ))

    (if (/= A nil)(progn

    (setq M (sslength A))

    (command "erase" A "")

    (princ "\n共删除红色图元个")

    ))

    (command "UNDO" "E")

    (princ))

    这样,键入 D1 命令,就可以删除红色的图元了。

    展开全文
  • 我的是在一个widget上加了一个布局,然后再charview上显示的折线图,想把折线图的底色变一下,麻烦大神赐教。[img=https://img-bbs.csdn.net/upload/201710/16/1508143358_25251.jpg][/img]
  • 2007-03-28在word里如何做组织结构图?在插入组织结构图将插入点移动到要插入组织结构图的位置。单击“插入”菜单中的“对象”命令,然后单击“新建”选项卡。单击“对象类型”框中的“MS 组织结构图 2。...

    77c3afa354bbcefdba05d794e0169e21.png

    2007-03-28

    在word里如何做组织结构图?在

    插入组织结构图

    将插入点移动到要插入组织结构图的位置。

    单击“插入”菜单中的“对象”命令,然后单击“新建”选项卡。

    单击“对象类型”框中的“MS 组织结构图 2。0”。

    单击“确定”按钮。

    在“Microsoft 组织结构图”中出现一张空白的组织结构图时,输入所需内容。

    组织结构图创建完毕后,单击“ Microsoft 组织结构图”的“文件”菜单中的“关闭并返回”或“退出并返回到”命令。

    注意 如果没有“Microsoft 组织结构图”,请进行安装。

    插入组织结构图

    将插入点移动到要插入组织结构图的位置。

    单击“插入”菜单中的“对象”命令,然后单击“新建”选项卡。

    单击“对象类型”框中的“MS 组织结构图 2。0”。

    单击“确定”按钮。

    在“Microsoft 组织结构图”中出现一张空白的组织结构图时,输入所需内容。

    组织结构图创建完毕后,单击“ Microsoft 组织结构图”的“文件”菜单中的“关闭并返回”或“退出并返回到”命令。

    注意 如果没有“Microsoft 组织结构图”,请进行安装。

    。收起

    展开全文
  • 怎样在位图上绘图

    2013-01-16 10:56:47
    在MFC对话框中,我用picture控件插入了一副位图,然后需要在这个位图上绘制另一个位图,但是绘制后总是被插入的那个位图遮挡住,请问怎么才能实现在这个位图上实现绘图而不被遮挡住。
  • 在word中插入绘制logo这篇教程中涉及到了在word中绘制图形,有网友就在word软件中找不到绘图工具。而脚本之家给大家讲解word中绘图工具在哪?绘图工具栏的使用方法。通过各种版本来具体分析。word2003绘图工具在哪?...

    在word中插入绘制logo这篇教程中涉及到了在word中绘制图形,有网友就在word软件中找不到绘图工具。而脚本之家给大家讲解word中绘图工具在哪?绘图工具栏的使用方法。通过各种版本来具体分析。

    word2003绘图工具在哪?

    在word2003版本中,word绘图工具栏默认是不显示的,如果需要将其绘图工具栏显示出来的话,需要在“常用工具栏”和“格式工具栏”右侧空白处单击右键,然后会出来一排菜单,你只要选择“绘图”就可以了,这样的话“绘图工具栏”会出现在文档底部。如图所示:

    27d9b06a92a92b99b933689fbb97c7a6.png

    word2007绘图工具在哪?

    在word2007以上版本的话,绘图工具就是点击菜单栏的“插入”就是绘图工具栏。在绘图工具栏点击“形状”上面有各种各样的图形形状。在形状中点击“新建绘图画画布,就可以自行的绘制各种图形形状。如图所示:

    d7ba52cf68fa715ebffe1fbe72d87f37.png

    word绘图工具栏的常规使用:

    1、绘制自选图形。

    2、调整图形,其中就包括调整图形大小,调整图像角度及调整位置。

    3、选中图形,点击绘图工具条中的“填充颜色”按钮,选择下拉菜单中自己需要的颜色,图形的颜色就会有相应的变化。

    4、对图形中线条调整。包括对线条颜色调整,线条虚实、粗细的调整等。

    5、图形的阴影样式、三维效果样式的调整。

    6、各种图形的组合

    展开全文
  • 怎样快速对PDF格式图纸进行绘图修改?我们常常在完成CAD绘图工作之后,会将CAD图纸保存成PDF格式,这样便于储存及预览,但是若是在这个时候想要进行绘图修改就会非常麻烦。在 xun jie CAD编辑器(标准版)中,有一个...
  • windows10通用应用中怎样开发绘图应用?
  • ChemOffice化学套件的ChemBio 3D、ChemFinder和ChemDraw是提供核心常用功能的三个套件,ChemDraw和ChemBio 3D分别用于编辑平面和立体结构,而ChemFinder数据库用于查询各种化学数据。为了快速有效的查询到更多化学...
  • 下面的代码是一个简短得多的代码,用于说明我使用matplotlib创建动画绘图的方法。该代码在特定的坐标上绘制一条简单的船并旋转它。在如果我希望此图的渲染速度超过14fps,我应该使用什么方法?例如,有没有办法在...
  • 需求是这样的: C#winform中,创建一个文本框,然后输入画什么图形以及大小,一开始画笔是在0,0。比如说我输入:circle 20 ,就代表在0,0开始画一个直径为20的圆。...不懂该怎样将文本框获取的数据再发送至绘图!!
  • 平移和滚动是查看绘图特定区域的两种方式。使用较高的放大倍数或者处理大型图形设计时,可能无法看到全部图形。平移和滚动功能可让用户在绘图窗口内移动页面来查看之前隐藏的区域,今天的CDR教程将详解如何在Corel...
  • 用什么函数可以刷新绘图区,是不是每次作图都得刷新作图区?可以不用函数让程序在每次绘图时将上次绘的图刷掉吗,要怎么做
  • 我们平时在设计图纸的时候,有的时候,也经常会遇到图层繁多,需要处理的情况,那么图层少...那以上就是小编整理的关于CAD绘图设计中怎样删除CAD图层?怎样清理CAD图层文件?的全部操作过程了,希望对你们有所帮助。
  • 作图步骤:设置图幅→设置单位及精度→建立若干图层→设置对象样式→开始绘图。2.绘图始终使用1:1比例。为改变图样的大小,可在打印时于图纸空间内设置不同的打印比例。3.为不同类型的图元对象设置不同的图层、...
  • DGI+双缓冲绘图怎样

    2012-08-11 22:48:55
    有谁能给个DGI+双缓冲绘图的完整的例子么? 我是新手简单点的为好
  • 怎样提高GDI+的绘图效率

    千次阅读 2008-01-10 14:22:00
    现在把它放在博客上咧: 最近用GDI+绘图,初次使用,感觉绘制效率不太满足要求。搜索了些相关资料,多数也只谈到了使用双缓冲(仅仅是解决了画面的闪烁问题)。了解到DirectX绘制要快的多(picasa 就使用的DirectX...
  • 网上很多绘图程序和小游戏程序都是用的 TC,在 VC 下编译时提示错误:fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory 解决步骤/方法 一、请确保您已经安装 Visual C++ ...
  • 最近做一个项目需要用到绘画,引用了ZRender插件,因为需要给线条设置圆形线帽,发现文档中并没有线条末端线帽样式的设置方式,于是查看了一下ZRender源码,修改了部分一点源码,可以自定义线帽样式。...
  • 我想建立一个这样的视图,作为分割视图的一部分,用它来保存绘图的模版信息。 比方说在横坐标(0-200)上绘制2条曲线,(200-400)上绘制3条曲线,(400-600)上绘制2条曲线; 这个视图具有以下的功能: 1、可以...
  • 需求是通过几个参数在屏幕上绘制出一个简易平面图,有能实现这种功能的绘图引擎或第三方库吗?或者有什么别的解决方案?谢谢大家!
  • TeeChart作为一款强大好用的绘图控件,通过它可以绘制出各式各样的图表,包括2D的,还有3D的,绘制的图表美观实用,这里主要讲述如何在VS2013/MFC中使用TeeChart控件,顺便说一下在VS2013中如何创建MFC项目。...
  • 最近用GDI+绘图,初次使用,感觉绘制效率不太满足要求。搜索了些相关资料,多数也只谈到了使用双缓冲(仅仅是解决了画面的闪烁问题)。了解到DirectX绘制要快的多(picasa 就使用的DirectX),但好象没有这个必要,...
  • 下面的程序运行后,鼠标拖动画出的直线不会消失,坐标也是重叠的。有人说重画清屏,能不能给个代码?谢了!importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclas......有人说重画清屏,能不能给个...
  • 数据可视化:·我们生活中常见的图形·数据可视化基础·绘图包Mateplotlib如何使用?·如何使用pandas绘图?·如何用Notebook制作数据分析报告1生活中常见的图形技术成熟度“几字形”曲线分为萌芽期、过热期、低谷期...
  • 应研发要求,需要研究工频对产品的影响,理论不需赘述,直接上数据:数据预处理原始数据如下: 一般用宏处理成csv文件,分隔符为逗号和空格居多,Matlab和Lisp-Stat处理就和便捷了。 数据读取Matlab的话,直接使用...
  • Office 上面书写和画画功能,必须建立在你的设备支持触摸功能的基础上,使用手指、数字笔或鼠标进行绘制。可用的墨迹书写功能取决于所使用的设备类型以及所使用的 ...1.在功能区的“绘图”选项卡上,单击以选择...
  • 为了方便开发人员能更快速的使用开发工具,下面给大家提供LightningChart® Ultimate SDK v.8 使用手册: 1.  安装软件 - 运行 setup.exe ...安装程序在开始菜单中创建Arction 文件夹: ...软件被默认安装到 C:\...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 717
精华内容 286
关键字:

怎样绘图