在MATLAB二维图中,随鼠标移动,显示该点的坐标信息,如何做到?谢谢大家,在线等

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MATLAB二维图中,随鼠标移动,显示该点的坐标信息,如何做到?谢谢大家,在线等相关的知识,希望对你有一定的参考价值。

参考技术A 要那么复杂吗?倒是可以让关键点显示的方法比如x=[1 2 3],y=[4 5 6],plot(x,y,‘o’)
将点(1,4)(2, 5)(3,6)用o标出来。
参考技术B get(gcf,'CurrentPoint').....

VC++随鼠标移动显示坐标和坐标映射模式学习

VC6,新建一个单文档工程;

把这两个加到视类头文件;

        CPoint m_ptOut; //用来保存鼠标坐标
        CString strPosition; //用来保存输出的内容

视类CPP的构造函数中初始化,

        m_ptOut.x = 0;
        m_ptOut.y = 0;

用类向导为视类添加鼠标移动消息处理函数,该函数代码如下;

void CMmView::OnMouseMove(UINT nFlags, CPoint point) 

	// TODO: Add your message handler code here and/or call default
	//this->GetDC()->SetMapMode(MM_HIENGLISH);
	m_ptOut.x = point.x;
	m_ptOut.y = point.y;
	Invalidate();
	
	CView::OnMouseMove(nFlags, point);

OnDraw()函数代码如下;
 

void CMmView::OnDraw(CDC* pDC)

	CMmDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	//pDC->SetMapMode(MM_TEXT);
	//pDC->SetMapMode(MM_HIENGLISH);
	strPosition.Format("当前鼠标坐标:%d,%d", m_ptOut.x,m_ptOut.y);
	pDC->TextOut(m_ptOut.x,m_ptOut.y,strPosition);

运行如下;

这时是默认的坐标映射模式MM_TEXT;

坐标映射模式的概念;

由逻辑窗口到物理视口的映射过程:

    在窗口坐标系(一般是X轴向右递增,Y轴向上递增,即与笛卡尔坐标系一致,而坐标单位是用户自定义的)上绘图,然后要在视口坐标系(一般坐标原点在屏幕视图的左上角,X轴向右递增,Y轴向下为正方向)下显示,坐标映射方式则规定了窗口和视口的范围,各轴的相对方向、原点或缩放比例等;

八种映射方式:
        MM_TEXT(默认的坐标映射方式)
        MM_HIENGLISH(高精度英制坐标系) 1单位 = 0.001英寸
         MM_LOENGLISH(低精度英制坐标系) 1单位 = 0.01英寸
         MM_HIMETRIC(高精度公制坐标系) 1 单位 = 0.01毫米
         MM_LOMETRIC(低精度公制坐标系) 1 单位 = 0.1毫米
         MM_TWIPS(排版坐标系) 1 单位 = 1缇 = 1/1440英寸

        MM_ISOTROPIC(各向同性坐标系,x与y单位相等)
        MM_ANISOTROPIC(各向异性坐标系,x与y单位不等)

想看一下改为其他映射方式的情况;

MFC提供的SetMapMode函数是从pDC来调用;

    pDC->SetMapMode(MM_HIENGLISH);

如果在OnDraw()里加上这句,或者在OnMouseMove里也加上这句,

    this->GetDC()->SetMapMode(MM_HIENGLISH);

则运行如下,只能在很小的范围内显示数值;有时间继续;

 

 

以上是关于在MATLAB二维图中,随鼠标移动,显示该点的坐标信息,如何做到?谢谢大家,在线等的主要内容,如果未能解决你的问题,请参考以下文章

VC++随鼠标移动显示坐标和坐标映射模式学习

关于MATLAB收集人工鼠标移动轨迹的坐标

安卓 百度地图API怎么点击地图获取坐标

怎么在matlab中鼠标在坐标图上单击,记录下这一点的坐标啊

MATLAB二维绘图向图中添加标题,坐标轴,图标和文字信息

js怎么获得鼠标当前坐标