坐标区内选择的屏幕点映射到曲线坐标点matlab实现

#问题描述
一条曲线显示在AXIS区域内,如何实现鼠标在屏幕显示的曲线上点取后能够得到真实的曲线坐标点。
在这里插入图片描述
如图所示,需要将MainFigureShow UIAXES控件里的波形通过鼠标点取之后,把波形一分为二。这时候就需要如问题所描述的操作。

#算法思想

1,在UIAXES控件内取点之后,将屏幕点坐标获取后传入函数
2,将UIAXES控件完整坐标解析出来
3,将UIAXES控件内的坐标轴数据解析出来
4,计算屏幕获取点在UIAXES控件内的位置,再映射到控件坐标内,就可以得出

#程序源码

function [Map_x,Map_Y] = SelectPoint(app)
                fScreen_X = app.Screen_X;
                fScreen_Y = app.Screen_Y;
                fAxis_Y = app.Main_Figure_UIAxes.YTick;
                fAxis_X = app.Main_Figure_UIAxes.XTick;
                Length_XData = length(fAxis_X);
                Length_YData = length(fAxis_Y);
                Left_screenX = app.Main_Figure_UIAxes.InnerPosition(1);
                bottom_screenY = app.Main_Figure_UIAxes.InnerPosition(2);
                screenX_length = app.Main_Figure_UIAxes.InnerPosition(3);
                screenY_length = app.Main_Figure_UIAxes.InnerPosition(4);
                Map_x = (fScreen_X - Left_screenX) * (fAxis_X(Length_XData)-fAxis_X(1)) / screenX_length + fAxis_X(1);
                Map_Y = (fScreen_Y - bottom_screenY) * (fAxis_Y(Length_YData)-fAxis_Y(1)) / screenY_length + fAxis_Y(1);
               
        end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值