Foxtable(狐表)用户栏目专家坐堂 → 如何拖拽线使得线头跟着鼠标走


  共有2426人关注过本帖树形打印复制链接

主题:如何拖拽线使得线头跟着鼠标走

帅哥哟,离线,有人找我吗?
jiangxun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:876 积分:5929 威望:0 精华:0 注册:2014/8/3 12:15:00
如何拖拽线使得线头跟着鼠标走  发帖心情 Post By:2014/11/27 3:06:00 [只看该作者]

拖拽水平线如下       

e.Sender.width =vars("x") + (e.x - vars("x"))

拖拽垂直线如下:

e.Sender.Height = vars("y") + (e.y - vars("y"))

拖拽斜向下的线如下:

        e.Sender.Height = vars("y") + (e.y - vars("y"))
        e.Sender.width = vars("x") + (e.x - vars("x"))

 

以上都可实现

但是在拖拽反向线时,也就是left,和top要动起来,就实现起来有为题请教,一下是我的方法,请指导:

斜向上:


 e.Sender.top += e.y - vars("y")
e.Sender.Height += - (e.y - vars("y"))
e.Sender.width = vars("x") + (e.x - vars("x"))

水平线反向拖拽:

        e.Sender.Left += (e.x - vars("x"))
        e.Sender.Width +=  - (e.x - vars("x"))
垂直线反向:

        e.Sender.Top += (e.y - vars("y"))
        e.Sender.Height +=  - (e.y - vars("y"))
斜向上的线反向拖拽

        e.Sender.Left += e.x - vars("x")
        e.Sender.Width +=  - (e.x - vars("x"))
        e.Sender.Height = vars("y") + (e.y - vars("y"))
斜向下的线反向拖拽:

        e.Sender.Left += e.x - vars("x")
        e.Sender.Top += e.y - vars("y")
        e.Sender.Width +=  - (e.x - vars("x"))
        e.Sender.Height += - (e.y - vars("y"))

反向拖拽的意思是拿另一头当线头拉伸,

正常情况下top、left不变好做,拉伸非top,left的一头。但是拉伸top,left一头时总是有问题。

恳请帮助解决。



 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/11/27 8:03:00 [只看该作者]

上个例子看看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/27 9:07:00 [只看该作者]

 或者不要用线控件,你可以变通一下,比如放两个panel控件或者其它控件,模拟成头和尾,拉扯头尾的时候,在两点之间画一条线就好。

 回到顶部
帅哥哟,离线,有人找我吗?
jiangxun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:876 积分:5929 威望:0 精华:0 注册:2014/8/3 12:15:00
  发帖心情 Post By:2014/11/27 23:57:00 [只看该作者]

请在线段的控制上给两个函数使得线段可随鼠标移动分别绕着两个端点旋转并伸缩,谢谢,请贵司工程师提供这样的函数,否则线段无法发挥全面的作用。我是真的需要这个功能,非常感谢能够提供。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/28 9:03:00 [只看该作者]

以下是引用jiangxun在2014-11-27 23:57:00的发言:

请在线段的控制上给两个函数使得线段可随鼠标移动分别绕着两个端点旋转并伸缩,谢谢,请贵司工程师提供这样的函数,否则线段无法发挥全面的作用。我是真的需要这个功能,非常感谢能够提供。

 

看3楼,用两个控件做头和尾,两控件之间画一条线


 回到顶部
帅哥哟,离线,有人找我吗?
jiangxun
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:876 积分:5929 威望:0 精华:0 注册:2014/8/3 12:15:00
  发帖心情 Post By:2014/11/28 19:39:00 [只看该作者]

谢谢

 


 回到顶部