精华内容
下载资源
问答
  • Matlab一个窗口中绘制个图形

    万次阅读 2018-11-11 10:18:50
    将图像窗口分成若干区域,区域内分别绘图. handle = subplot(m, n, p); 上述指令将图像划分为 m*n 个子区域, p用于指向子区域. 顺序为 1 2 3 … n n+1 n+2 n+3 2n …………………………………….. (m-1...

    subplot指令
    将图像窗口分成若干个区域,在每个区域内分别绘图.
    handle = subplot(m, n, p);
    上述指令将图像划分为 m*n 个子区域, p用于指向子区域. 顺序为
    1 2 3 … n
    n+1 n+2 n+3 2n
    ……………………………………..
    (m-1)n+1 ……………………m*n

    例子:

    x = 0 : pi / 100: 2 * pi;
    y = sin(x);
    subplot(2, 2, 1), plot(x, y)
    xlabel('sin(x)');
    grid on
    
    y = cos(x);
    subplot(2, 2, 2), plot(x, y)
    xlabel('cos(x)');
    grid on
    
    clear
    x = -pi/4 : pi / 100: +pi/4;
    y = tan(x);
    subplot(2, 2, 3), plot(x, y)
    xlabel('tan(x)');
    grid on
    
    y = cot(x);
    subplot(2, 2, 4), plot(x, y)
    xlabel('cot(x)');
    grid on
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    这里写图片描述

    end

    转载自:https://blog.csdn.net/human_recognition/article/details/51824252

    展开全文
  • 用户通常希望以特定顺序将图形绘制图形窗口磁贴……但无法对其开始位置进行编程控制。 第一个数字进入最后一个磁贴,无论是通过编程选择的,还是点击的,即使是空的! clearfigures.m 清除数字窗口并将焦点留...
  • 代码如下: import numpy as np import matplotlib.pyplot as plt #创建自变量数组 x= np.linspace(0,2*np.pi,500) #创建函数值数组 y1 = np.sin(x) ...意思是在一个2行2列共4个子图的图,定...

    代码如下:

    import numpy as np
    import matplotlib.pyplot as plt
    #创建自变量数组
    x= np.linspace(0,2*np.pi,500)
    #创建函数值数组
    y1 = np.sin(x)
    y2 = np.cos(x)
    y3 = np.sin(x*x)
    #创建图形
    plt.figure(1)
    '''
    意思是在一个2行2列共4个子图的图中,定位第1个图来进行操作(画图)。
    最后面那个1表示第1个子图。那个数字的变化来定位不同的子图
    '''
    #第一行第一列图形
    ax1 = plt.subplot(2,2,1)
    #第一行第二列图形
    ax2 = plt.subplot(2,2,2)
    #第二行
    ax3 = plt.subplot(2,1,2)
    #选择ax1
    plt.sca(ax1)
    #绘制红色曲线
    plt.plot(x,y1,color='red')
    #限制y坐标轴范围
    plt.ylim(-1.2,1.2)
    #选择ax2
    plt.sca(ax2)
    #绘制蓝色曲线
    plt.plot(x,y2,'b--')
    plt.ylim(-1.2,1.2)
    #选择ax3
    plt.sca(ax3)
    plt.plot(x,y3,'g--')
    plt.ylim(-1.2,1.2)
    plt.show()

     

    展开全文
  • emwinWM窗口中绘制2D图形的解决

    千次阅读 2019-05-05 13:26:59
    我用GUIBuilder创建了一个window窗口界面,然后想界面上画两条线,将内容直接加初始化发现不行。emwin手册发现, 窗口重绘问题,于是界面函数那里添加了回调WM_PAINT,显示成功。附照片一张: 黑色的...

    我用GUIBuilder创建了一个window窗口界面,然后想在界面上画两条线,将内容直接加在初始化发现不行。在emwin手册中发现,

    窗口重绘问题,于是在界面函数那里添加了回调WM_PAINT,显示成功。附照片一张:

    黑色的线条就是画的线。

     

    展开全文
  • p_figure 是 imshow 的包装器,用于绘制并防止每次调用时重置图形窗口的位置和大小。 参见... ``` fig1=p_figure(im2,'fig_h',fig1) ``` 新图像显示一个图形窗口中,而不改变位置。
  • 如果用户选择了一个不可能的点(意味着没有椭圆可以通过 3 个点),函数返回 NaN,图形窗口中的结果只是一条平线。 代码开发过程中,我得到了 Roger Stafford 的回答和维基百科的帮助...
  • pywin32画图中绘制图形 文章目录pywin32画图中绘制图形获取画图的窗口句柄点击事件绘制图形 获取画图的窗口句柄 由于画图程序的特殊性,与之前的浏览器窗口不同,其窗口下还有多个子窗口,我通过spy++软件...

    pywin32在画图中绘制图形

    获取画图的窗口句柄

    • 由于画图程序的特殊性,与之前的浏览器窗口不同,其在主窗口下还有多个子窗口,我通过spy++软件找到了绘图区窗口的信息。在这里插入图片描述

    • 可以看出这个绘图子窗口的caption为空,只有一个class(这个值也是会变的),尝试了几次使用FindWindow()函数并没有什么用,直接将handle值赋值后下次开机有是不同的句柄号。于是我们只能通过找画图这个父句柄来获取绘图子窗口的句柄
      窗口结构

    • 因为绘图子窗口句柄会变化所以我们需要找到不变化的它的上一级即class为’MSPaintView’的窗口再获取到它子窗口句柄组的第一个。

      '''
      获得parent的所有子窗口句柄
       返回子窗口句柄列表
       '''
      def get_child_windows(parent):
          if not parent:
              return
          hwndChildList = []
          win32gui.EnumChildWindows(parent, lambda hwnd, param: param.append(hwnd),  hwndChildList)
          return hwndChildList
      hwnd0 = win32gui.FindWindow( None,"无标题 - 画图")  #获取画图窗口句柄
      
      for childh in get_child_windows(hwnd0):
          clsname = win32gui.GetClassName(childh)
          if clsname == 'MSPaintView':
              hwnd = get_child_windows(childh)[0]
              break
      #获取绘图区子窗口句柄
      
    • 这样我们就获取到了绘图区的窗口句柄了,下面就是让它画图,我们拿鼠标画图的时候按住左键,然后再拖动鼠标,这里要考虑到我们绘制图形的连续性比较复杂,这里就简单地用快速画点的方式去绘制吧。

    点击事件

    • 鼠标点击大致有两种方式.一种就是真实地移动你的物理鼠标即模拟你使用鼠标移动和点击等等行为,第二种是向窗口发送鼠标事件,显然我们会更喜欢后者。(只是懒得找移动鼠标代码了)

      def clickLeftCur(mX, mY):  #在(mX,mY)处单击一哈
          win32gui.PostMessage(hwnd, win32con.WM_LBUTTONDOWN, 0, mX + mY * 65536)#左键按下
          time.sleep(0.00000001) #象征性地延时100ns不过对于电脑来说还是挺长的呢 
          win32gui.PostMessage(hwnd, win32con.WM_LBUTTONUP, 0, mX + mY * 65536)#左键起来
      

    绘制图形

    • 现在万事具备了,我们来绘制一个圆吧,

      R=100 #半径
      cX=300	
      cY=300	#圆心坐标
      for i in range(1000): #将圆分为1000个点
          clickLeftCur(int(cX+R*math.sin(2*math.pi*(i/1000))),int(cY+R*math.cos(2*math.pi*(i/1000))))
      cv2.imshow('paint',window_capture(hwnd))#再用上次学的显示一下图片
      

    在这里插入图片描述

    完整代码

    import win32gui, win32ui, win32con, win32api
    import cv2
    import numpy as np
    import math
    import time
    
    
    def clickLeftCur(mX, mY):  #单击
        win32gui.PostMessage(hwnd, win32con.WM_LBUTTONDOWN, 0, mX + mY * 65536)
        time.sleep(0.000000001)
        win32gui.PostMessage(hwnd, win32con.WM_LBUTTONUP, 0, mX + mY * 65536)
    
    
    def window_capture(hwnd):
        hwndDC = win32gui.GetWindowDC(hwnd)
        # 根据窗口句柄获取窗口的设备上下文DC(Divice Context)
        mfcDC = win32ui.CreateDCFromHandle(hwndDC)
        # 根据窗口的DC获取mfcDC
        saveDC = mfcDC.CreateCompatibleDC()
        # mfcDC创建可兼容的DC
        saveBitMap = win32ui.CreateBitmap()
        # 创建bigmap准备保存图片
        rctA = win32gui.GetWindowRect(hwnd)
        w = rctA[2] - rctA[0]
        h = rctA[3] - rctA[1]
        #获取图片大小
        # 截取从左上角(0,0)长宽为(w,h)的图片
    
        saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)
        # 为bitmap开辟空间
        saveDC.SelectObject(saveBitMap)
        # 高度saveDC,将截图保存到saveBitmap中
        saveDC.BitBlt((0, 0), (w, h), mfcDC, (0, 0), win32con.SRCCOPY)
    
        signedIntsArray = saveBitMap.GetBitmapBits(True)
        img = np.frombuffer(signedIntsArray, dtype="uint8")
        img.shape = (h, w, 4)
        #bit图转mat图
    
        win32gui.DeleteObject(saveBitMap.GetHandle())
        mfcDC.DeleteDC()
        saveDC.DeleteDC()
        #释放内存
        return cv2.cvtColor(img, cv2.COLOR_RGBA2RGB)  #转为RGB图返回
        
    def get_child_windows(parent):
        '''
        获得parent的所有子窗口句柄
         返回子窗口句柄列表
         '''
        if not parent:
            return
        hwndChildList = []
        win32gui.EnumChildWindows(parent, lambda hwnd, param: param.append(hwnd),  hwndChildList)
        return hwndChildList
    
    hwnd0 = win32gui.FindWindow( None,"无标题 - 画图")  #获取画图窗口句柄
    
    for childh in get_child_windows(hwnd0):
        clsname = win32gui.GetClassName(childh)
        if clsname == 'MSPaintView':
            hwnd = get_child_windows(childh)[0]
            break
    
    #获取绘图区子窗口句柄
    R=100
    cX=300
    cY=300
    for i in range(1000):
        clickLeftCur(int(cX+R*math.sin(2*math.pi*(i/1000))),int(cY+R*math.cos(2*math.pi*(i/1000))))
    cv2.imshow('paint',window_capture(hwnd))
    
    展开全文
  • 在窗口显示文字和绘制图形

    千次阅读 2006-05-14 03:56:00
    昨天和大家谈了如何建立一个带有窗口的Windows程序,今天和大家说说如何在窗口中显示文字吧!!先说说相关的基础知识(1).绘制和更新Windows中,只能窗口的显示区域绘制文字和图形,而且不能确保显示区域内显示的...
  • 利用matlab如何在图形中绘制箭头

    千次阅读 2015-07-22 19:21:15
    看到有网友询问MATLAB如何绘制箭头,为此就做一个绘制箭头”专题的帖子,算是做一个总结。本帖仅对Matlab自带的绘制箭头的函数进行举例汇总,对于其他网友自编的形形色色的函数就无暇顾及了。 一、二维箭头 ...
  • 单个可调整大小的窗口中显示多个图形 支持任何可以转换为双精度的数据类型 添加图形时,只需将变量的引用传递给您,而无需显式更新每个值 控制每个图形上显示的数据点数 自动缩放以适合图形上的所有数据 每个变量...
  • 我们通常使用ATL COM组件,生成一个带窗口的ActiveX控件,然后希望这个窗口中绘制我们的图像、图形等数据,然而ATL向导生成的代码中包含很多错误,并且没有实现双缓冲。本文对此问题进行简要的描述。并给出简单...
  • 这次实现的功能是在窗口中一个三角形,一个矩形,一个圆形
  • OpenGL绘制图形以及绘制动画(

    万次阅读 2016-07-02 19:40:53
    刚开始接触OpenGL,有点小激动,终于绘制出一个图形了,哇 ...//函数用于在窗口中绘制需要的图形 //只是一个场景scene 并不会真正绘制到图形中去。 void RenderScene(void) { //用当前清除颜色缓冲区,
  • QGLWidget类用来绘制OpenGL图形窗口

    千次阅读 2013-11-16 22:36:55
    QGLWidget提供一系列的函数来在一个QT应用程序里面绘制OpenGL,用起来很简单,我们可以派生它,然后 使用像其他任何窗口一样使用子类,除非你选择了使用QPainter和标准的OpenGL绘图命令 QGLWidget提供三个方便的...
  • MatLab中绘制函数图形,可以使用Plot函数,下面使用该函数绘制二次函数曲线。x=[-5:0.1:5];y=x.^2;%注意这里必须使用点乘。plot(x,y); 如果继续绘制其他的函数曲线,前次绘制的曲线会被覆盖,可以使用figure命令...
  • DirectX3D游戏开发二 绘制一个图形

    千次阅读 2015-08-28 17:08:22
    前一章节我们已经创建了我们的第一个DirectX3D项目,但是只是显示一个灰色的窗口而已,并没有进行相应的 绘图操作。那么今天,我们就来让窗口变得更漂亮一些。  今天主要讲通过顶点缓冲区绘制图形。什么是顶点...
  • matlab图形绘制

    2021-03-13 16:29:30
    第六章 matlab图形绘制 6.1 1. matlab图形绘制基础 在matlab,一般按照下述的几个步骤绘制图形 准备需要绘制的数据或函数,常用的...若要在一个窗口不同的位置上绘制,可以用subplot subplot(m,n,k) ,m*n个图形,m行
  • 我们通常使用ATL COM组件,生成一个带窗口的ActiveX控件,然后希望这个窗口中绘制我们的图像、图形等数据,然而ATL向导生成的代码中包含很多错误,下面是其自动向导生成的代码:  HRESULT OnDraw(ATL_DRAWINF.....
  • 我们通常使用ATL COM组件,生成一个带窗口的ActiveX控件,然后希望这个窗口中绘制我们的图像、图形等数据,然而ATL向导生成的代码中包含很多错误,下面是其自动向导生成的代码: HRES...
  • 本篇中我们在窗口中绘制一个图形,并且希望该窗口是可以改变大小的,并且渲染程序能够对窗口大小改变做出正确的响应。   程序如下所示: #include void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); //...
  • 绘制图形

    2018-03-28 16:07:27
    面板加入一个继承JPanel的类3.重写JPanel的paint()方法4.注意:paint()方法会下面三种情况下自动调用 ①程序启动②窗口大小发生变化③运行repaint函数时package Mapping; import java.awt.Color; import ...
  • DRAGPLOT 允许将绘制的线从一个图形窗口拖放到另一个图形窗口中。 当您希望比较多个程序的结果并且您没有花时间或麻烦来保存数据、调用数据和发出自定义绘图命令时,这很方便。 线条可以从一个图形移动或复制到另一...
  • 菜鸟一个,最近做一个swing的项目,发现窗口的最小化,最大化都会导致画的线与图形消失,实际上是绘制方法没有写paint()里面,而是写了按钮的监听事件。 画线按钮代码,画线的方法写监听事件内,所以...
  • (3) 最大化轴- 单击此工具,当前轴将被最大化当前图形窗口中。 再次单击该工具即可将轴恢复到其原始大小。 (4) 选择颜色条- 单击此工具,将出现一系列颜色图您可以从中以图形方式选择一个。 可用的颜色图包括库存...
  • 图形窗口的分割

    2019-10-04 00:13:39
    一个图形窗口绘制若干个独立的图形,同一窗口中的不同图形称为子图。 MATLAB系统提供了subplot函数,用来将当前图形窗口分割成若干个绘图区。每个区域有独立坐标系,是独立子图。 原理:通过subplot函数激活某...
  • Origin多层图形绘制方法

    千次阅读 2020-03-01 23:32:07
    有的时候需要在一个图形中使用不同的坐标体系、不同的图形模式及不同的坐标区间,这其中就涉及到图层的概念。在一个窗口中绘制多个图层,可以方便我们创建和管理数据曲线。一般图层中含有坐标轴、数据图和相应的文字或...
  • 此外,图形的保存是通过嵌入个图形窗口中的简约用户界面菜单完成的。 第次下载 goshaplot 并将其放入 Matlab 主文件夹后,您可以使用简单的命令行窗口命令更新它。 有关更多信息,请参阅文档。 此版本的新...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,299
精华内容 519
关键字:

在一个图形窗口中绘制