欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 画线问题请教

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


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

主题:画线问题请教

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


加好友 发短信
等级:新手上路 帖子:24 积分:237 威望:0 精华:0 注册:2010/5/18 22:48:21
画线问题请教  发帖心情 Post By:2010/7/19 23:08:26 [显示全部帖子]

 

如图,上面一根线是用程序的画线工具画的,下面的一根是自己用VBS代码画的,但在窗格的右边,上面的一根过Y轴右边的部分不可见,而下面的一根过Y轴右边是看得见的。不知有什么方法,使下面的自己画的线在Y轴右边也不可见?

 

VBS代码如下:

 

Sub Technic_Paint()
     set Grid = technic.ActiveGrid
     start_x = Grid.PelsByPos(3600,false)
     start_y = Grid.PriceToPels(5.20)

     end_x = Grid.PelsByPos(3660,false)
     end_y = Grid.PriceToPels(4.20)
 
     call Grid.DrawLine (start_x, start_y, end_x, end_y)  

End Sub

 

 



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


加好友 发短信
等级:新手上路 帖子:24 积分:237 威望:0 精华:0 注册:2010/5/18 22:48:21
  发帖心情 Post By:2010/7/21 10:33:51 [显示全部帖子]

以下是引用admin在2010-7-20 17:55:10的发言:

TopHeight         当前窗格上边距高度,以象素表示,该边距通常用来显示公式数据,可读写。

LeftWidth         当前窗格左边距宽度,以象素表示,该边距通常用来显示左Y坐标,可读写。

RightWidth        当前窗格右边距宽度,以象素表示,该边距通常用来显示右Y坐标,可读写。

BottomHeight      当前窗格下边距高度,以象素表示,该边距通常用来显示X坐标,可读写。

 

将上述属性考虑进去即可。

 

Sub Technic_Paint()
     set Grid = technic.ActiveGrid
     start_x = Grid.PelsByPos(3600,false)
     start_y = Grid.PriceToPels(5.20)

     end_x = Grid.PelsByPos(3660,false)
     end_y = Grid.PriceToPels(4.20)

 

     if end_x > Grid.Width - Grid.RightWidth then

        end_x = Grid.Width - Grid.RightWidth

     end if

    '其他限制代码,自己加上去即可
 
     call Grid.DrawLine (start_x, start_y, end_x, end_y)  

End Sub

版主,这种方式不行哦,X轴坐标变化了,其相对应的Y轴坐标没有变,当将整幅K线图形向右移动过程中,那画出的线的位置是不断变化的。即:整幅K线图形向右水平移动到右边界,继续右移时,所画线的初位置(start_x, start_y)变化,而末位置( end_x, end_y)不变。
 
[此贴子已经被作者于2010-7-21 10:44:22编辑过]

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


加好友 发短信
等级:新手上路 帖子:24 积分:237 威望:0 精华:0 注册:2010/5/18 22:48:21
  发帖心情 Post By:2010/7/21 10:46:56 [显示全部帖子]

测试一下,原因和问题如4楼说明。要保持原图不变,对应的end_y也要重新计算了。要是复杂图形,那就太复杂了。还有没有别的方法呢?
[此贴子已经被作者于2010-7-21 10:54:28编辑过]

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


加好友 发短信
等级:新手上路 帖子:24 积分:237 威望:0 精华:0 注册:2010/5/18 22:48:21
  发帖心情 Post By:2010/7/21 11:03:38 [显示全部帖子]

请版主再看看,原因和问题如4楼说明。画面移动时,要保持原图不变,对应的end_y也要重新计算了。要是复杂图形,那就太复杂了。还有没有别的方法呢?

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


加好友 发短信
等级:新手上路 帖子:24 积分:237 威望:0 精华:0 注册:2010/5/18 22:48:21
  发帖心情 Post By:2010/7/22 0:04:42 [显示全部帖子]

(链接的图形质量好差啊)

 

显示问题已解决,谢谢版主解答。

 

但还需两个转换函数,用于获取数据,但编译器通不过:

 FrameToGrid(x1, y1, x2, y2)
 ValueByPoint(x, y, Date, ydata, false)

上面两个都通不过。

[此贴子已经被作者于2010-7-22 0:07:32编辑过]

 回到顶部