爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8208|回复: 13

[图形美化] 请问如何在图上方加上文字说明,不是在地图范围内。

[复制链接]

新浪微博达人勋

发表于 2018-10-8 18:16:08 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
如题。我加了个图层用来文字就明的,但只能在绘图范围内,如果设置坐标大于绘图范围,图形就好变形。请大家指导一下,谢谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-10-10 18:57:03 | 显示全部楼层
本帖最后由 chengxf 于 2018-10-10 19:03 编辑
bfxf 发表于 2018-10-10 17:51
对,我就是想要这样的效果,用c#二次开发要调用SURFER的什么函数。谢谢你!

C# 我不懂啊。下面一段代码,是 Pascal 语言所写,我用到的一段,你参考吧,如果没用,就不要看了。
你需要在哪里显示一段文本字符,还不是你说了算!Surfer 软件没有限制。
添加标题等文本,不要添加图层,只需添加一个“文本对象”,然后指定这个对象的 Left、Top 坐标,就可以了。跟原来的图形没有关系。

    //绘制图形的副标题_同时顶边轴的处理
    P_Axes := P_MapFrame.Axes;                   //先写副标题
    TopAxis := P_Axes.Item[2];                   //底边轴-1,顶边轴-2,左边轴-3,右边轴-4。这里不能像VB直接指定,P_Axes[2]不行
    TopAxis.Title := RzEdit_MinoTitle.Text;                     //顶边轴,需要写上图形的辅助标题
    TopAxis.TitleFont.Face := cbox_MinoTitle.FontName;          //辅助标题字体,字符串
    TopAxis.TitleFont.Size := RxSpinEdit_MinoTitle.AsInteger;   //辅助标题字号,整形值
    TopAxis.TitleFont.Italic := RzCheckBox_Italic.Checked;      //辅助标题是否斜体,也许对汉字不起作用
    TopAxis.TitleFont.HAlign := 2;                              //文本行对齐方式:1-左齐,2-居中,3-右齐
    TopAxis.MajorTickType := 1;                                 //坐标刻度不显示-1,显示在外-2,显示在内-3,显示穿过轴线-4
    TopAxis.MinorTickType := 1;
    TopAxis.ShowLabels := False;                                //坐标标注不显示-False,显示-True
    //绘制图形的主标题
    x := P_MapFrame.Left + P_MapFrame.Width * 0.5;                        //地图中心的 X 坐标
    y := P_MapFrame.Top + SEdit_TitleY.Value;                             //地图主标题上方的 Y 坐标
    MainTitle := P_Shapes.AddText(x,y,RzEdit_MajoTitle.Text);             //再写主标题,在位置 x,y 添加一个文字对象
    MainTitle.Font.Face := cBox_MajoTitle.FontName;                       //主标题字体,字符串
    MainTitle.Font.Size := RxSpinEdit_MajoTitle.AsInteger;                //主标题字号,整形值
    MainTitle.Font.Bold := RzCheckBox_Bold.Checked;                       //主标题是否加粗
    MainTitle.Left := P_MapFrame.Left + (P_MapFrame.width - MainTitle.width)/2;        //确定标题的最左边界点位置
    //右边轴的处理
    RightAxis := P_Axes.Item[4];                                  //右边轴
    RightAxis.MajorTickType := 1;                                 //坐标刻度不显示-1,显示在外-2,显示在内-3,显示穿过轴线-4
    RightAxis.MinorTickType := 1;
    RightAxis.ShowLabels := False;                                //坐标标注不显示-False,显示-True
    //底边轴的处理
    BottomAxis := P_Axes.Item[1];                                  //右边轴
    BottomAxis.MajorTickType := 2;                                 //坐标刻度不显示-1,显示在外-2,显示在内-3,显示穿过轴线-4
    BottomAxis.MinorTickType := 2;
    BottomAxis.ShowLabels := True;                                //坐标标注不显示-False,显示-True
    //BottomAxis.LabelFormat.Type := 4;                           //可惜目前无法通过 Automation 设置 DMS 形式的标注
    BottomAxis.LabelFormat.Postfix := RzEdit_BottomPostfix.Text;  //添加后缀°E
    //左边轴的处理
    LeftAxis := P_Axes.Item[3];                                   //右边轴
    LeftAxis.MajorTickType := 2;                                  //坐标刻度不显示-1,显示在外-2,显示在内-3,显示穿过轴线-4
    LeftAxis.MinorTickType := 2;
    LeftAxis.ShowLabels := True;                                  //坐标标注不显示-False,显示-True
    LeftAxis.LabelFormat.Postfix := RzEdit_LeftPostfix.Text;      //添加后缀°E


密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2018-10-8 19:57:10 | 显示全部楼层
你想在哪里加“文本”,就在那里加,有什么限制啊?!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-9 22:42:00 | 显示全部楼层
file:///D:/Document%20And%20Settings2/LGS/Desktop/%E9%A3%8E%E5%9B%BE.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-9 22:43:40 | 显示全部楼层
想让这图上方留些空白的地方,站文本图层中的文字显示在上方的空白处
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-10-10 11:08:31 | 显示全部楼层
bfxf 发表于 2018-10-9 22:43
想让这图上方留些空白的地方,站文本图层中的文字显示在上方的空白处

看看下面的图,哪有限制啊!?!?


2018-10-10_11-10-32.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-10 17:51:49 | 显示全部楼层
本帖最后由 bfxf 于 2018-10-10 18:14 编辑

对,我就是想要这样的效果,用c#二次开发要调用SURFER的什么函数。谢谢你!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-10 17:55:35 | 显示全部楼层
本帖最后由 bfxf 于 2018-10-10 18:09 编辑

我加个图层用来弄这些文本,x,y轴范围跟色斑图的取值范围一样时色斑图不会变形,但文本就不能弄到色斑图的上方;如将文本图层y轴坐标增大,叠加之后色斑图变形
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-10 21:30:25 | 显示全部楼层
chengxf 发表于 2018-10-10 18:57
C# 我不懂啊。下面一段代码,是 Pascal 语言所写,我用到的一段,你参考吧,如果没用,就不要看了。
你 ...

谢谢你1我好好看看。感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-10 22:45:55 | 显示全部楼层
再次谢谢你!在你的帮助下我成功啦,太好啦。哈哈。第一次在网上发帖就有达人相助,太好了。我刚用上surfer的,边学边用,边学边用。再次谢谢你!怎么发图片?想把绘好的图发上来站你看看,分享一下我的喜悦
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表