CN101086787A - 一种快速绘制电力线路图或地理线路图的方法 - Google Patents

一种快速绘制电力线路图或地理线路图的方法 Download PDF

Info

Publication number
CN101086787A
CN101086787A CNA2007100158778A CN200710015877A CN101086787A CN 101086787 A CN101086787 A CN 101086787A CN A2007100158778 A CNA2007100158778 A CN A2007100158778A CN 200710015877 A CN200710015877 A CN 200710015877A CN 101086787 A CN101086787 A CN 101086787A
Authority
CN
China
Prior art keywords
pos2
coordinate
circle
pos1
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007100158778A
Other languages
English (en)
Other versions
CN101086787B (zh
Inventor
朱桂永
朱凯
王萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN200710015877.8A priority Critical patent/CN101086787B/zh
Publication of CN101086787A publication Critical patent/CN101086787A/zh
Application granted granted Critical
Publication of CN101086787B publication Critical patent/CN101086787B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Generation (AREA)

Abstract

一种快速绘制电力线路图或地理线路图的方法,绘图步骤如下:a)在绘图文件中设置Xo、Yo为绘制线路的纵横坐标起点,设置X1、Y1为绘制线路纵横坐标的终点,再设置R、W、H、L1、L2五个系统变量:其中R代表圆的半径,W代表表箱的宽度,H代表表箱的高度,L1代表干线每段的长度,L2代表下户线的长度,两个圆之间、圆与表箱之间、或圆与变压器之间的线段为一档,通过动态调整五个变量的设置进行线路图形的快速绘制;b)在进行快速绘图时,先绘制干线,然后再绘制下户线,绘制干线或下户线通过键盘、菜单选择项或者通过绘图按钮进行转换;c)进入绘制干线的功能后,根据线路需要选点点击鼠标左键,系统将在点击处绘制第一个电杆;再点击一下刚绘制的电杆,此电杆将被选中,然后移动鼠标就绘制干线,移动鼠标时不要按下鼠标的任何键;该方法和现有技术相比,可有效提高专业绘图速度,提高绘图质量降低劳动强度。

Description

一种快速绘制电力线路图或地理线路图的方法
技术领域
本发明涉及一种计算机绘图应用技术,尤其是一种快速绘制电力线路图或地理线路图的方法。
背景技术
随着电脑的日益普及,目前大部分图纸是用电脑绘制的。当前的绘图工具,比如Windows画图板、Excel、AutoCAD、PhotoSDhop等,在绘制图像时每次只能绘制一个图像元素,不仅极大地影响了绘图的速度,也影响了所绘出图形的美观性。另外由于每个图像元素都是单独绘出的,各元素之间也就没有逻辑上的连接关系,所以无法对图形进行拓扑变换,因而也就不利于图形的后期维护。这一缺陷尤其是在绘制专业图形时更为突出。比如电力系统的线路图,在这类图形中,所绘制的图像不仅规律性强,而且图像元件间还有某种内含的联系,例如在电力线路图中,电杆(图中一般用圆表示)之间通过线段进行连接,而线路的末端一般又与用户电表箱或变压器相接。如图一所示。象此类图像再逐个元素进行绘制,不仅效率极其低下,也会让操作者感到枯燥无味;比如有一条10kM长的电力线路,其中电杆有115根,电杆之间的连接线段为114条,如果一个电杆、一条线段绘制,绘制完后电杆与线段还要保持几何上的连接状态,那么其中的工作量及重复性劳动是可想而知的。
发明内容
本发明的目的是提供一种快速绘制电力线路图或地理线路图的方法,在保持传统绘图方式的基础上,增加一种新的绘图方式,即在绘制图像时可以一次同时绘制多个图像元素,从而解决传统绘图方式在绘制电力线路或铁路公路线路地图中所存在的问题。
绘图步骤如下:
a)在绘图文件中设置Xo、Yo为绘制线路的纵横坐标起点,设置X1、Y1为绘制线路纵横坐标的终点,再设置R、W、H、L1、L2五个系统变量:其中R代表圆的半径,W代表表箱的宽度,H代表表箱的高度,L1代表干线每段的长度,L2代表下户线的长度,两个圆之间、圆与表箱之间、或圆与变压器之间的线段为一档,通过动态调整五个变量的设置进行线路图形的快速绘制;
b)在进行快速绘图时,先绘制干线,然后再绘制下户线,绘制干线或下户线通过键盘、菜单选择项或者通过绘图按钮进行转换;
c)进入绘制干线的功能后,根据线路需要选点点击鼠标左键,系统将在点击处绘制第一个电杆;再点击一下刚绘制的电杆,此电杆将被选中,然后移动鼠标就绘制干线,移动鼠标时不要按下鼠标的任何键;
d)线路干线的绘制。
本发明的方法是通过判断绘图的起点到鼠标当前位置之间的距离及组合图形的大小,自动确定需要绘制的数量,从而免去了重复性的工作。
本方法的优点:
1、可以一次绘制出多个组合图形,因而极大地提高了绘图的速度;如图一所示低压电力线路图,用此方法几分钟就可绘制完毕。而用传统的绘图工具可能需要数个小时;再比如高压线路图,用此方法几秒就可以绘完,而用传统的方法也需要花费很长时间。总之,用户在习惯了传统的绘图方法后再使用此方法绘图,速度快的甚至达到了难以接受的程度。电力系统的接线图有的断断续续绘制了几年都没有完成,改用此方法后几天就全部绘制完毕。
2、由于是一次绘制多个图像元素,因而在绘制图像时就可以建立图形之间的连接关系,方便了图形的拓扑变换及以后的维护。比如需要移动电杆,用此方法瞬间就可完成。比如将图一的30号杆左移到图二所示的位置,那么39、40及60号线将仍然与30号杆相连接,如图二所示。
3、由于所绘制的图形大小可以预先设置,因而绘出的图形大小一致、整齐美观;另外通过拓扑变换容易生成其它类型的图像,例如与实际大小比例一致的地理图、各线段大小相等的分析图等。
4、本方法尤其适用绘制规律性比较强的图形。
附图说明
图1是某一用电村低压线路接线图;两个圆相交的代表变压器,独立的一个圆代表电线杆,其中圆内的数字代表实际的电杆编号;方矩代表用户电表箱,方矩内的数字代表实际的表箱编号;线路上的数字是线段的自然顺序号,实际是不存在的,正常情况下也是不显示的(图中能演示出来是因为执行了显示线编号功能);
图2是将30号杆移动位置后系统根据拓扑关系自动形成的新的图形;
图3是绘制图形时的计算示意图;在计算机系统中,实际上显示屏幕的Y轴是向下的,为了便于说明问题,这里仍以教科书中的坐标系进行阐述,而实际效果是一样的。
实施方式
下面参照附图为例介绍本方法的具体实现。如图3所示,图中Xo、Yo为绘制的起点,X1、Y1为绘制的终点。(本图就是使用此方法一次绘制完成的)
a)首先设置五个系统变量:R、W、H、L1、L2;其中R代表圆的半径,W代表表箱的宽度,H代表表箱的高度,L1代表干线每段的长度,L2代表下户线的长度,两个圆之间、圆与表箱之间、或圆与变压器之间的线段为一档。实际应用中这几个变量都是可以动态调整设置的,以便可以绘制出符合要求的图形。
说明:长度值是指图中的几何值,而所代表线路的实际长度可以在图像元件的属性上标注,这样做的好处是方便图形的拓扑变换;干线是指两个电杆(圆)之间的连线,下户线是指与表箱(方矩)相连的线。
b)在进行快速绘图时,一般是先绘制干线,然后再绘制下户线,绘制干线或下户线可以通过键盘、菜单选择项或者绘图按钮进行转换。
c)进入绘制干线的功能后,在合适的地方点击一下鼠标,因为此时还没有一个电杆,系统将在点击处绘制第一个电杆;然后再点击一下刚绘制的电杆,此电杆将被选中,然后移动鼠标就可以绘制干线。在移动鼠标时不要按下鼠标的任何键。
d)干线的绘制:
i)绘制的档数计算:
假设鼠标当前位置到被选中圆的圆心之间的距离为LL,那么档数n=LL/(L1+2*R),四舍五入取整数值即可,其中L1、R是上面提及的预先定义的系统变量。LL可以通过坐标系中两点之间的距离公式求得:
LL=sqrt((X1-Xo)^2+(Y1-Yo)^2)
其中sqrt是求算术平方根函数,X1、Y1是当前鼠表位置的坐标,Xo、Yo是被选中的、作为起点的圆的中心坐标。
因为有多少档就要绘制多少个圆及多少个线段,所以还要确定每个圆的圆心坐标及线段两端点的坐标;为此先确定起点与鼠标当前位置两点之间的连线与X轴之间的夹角,可参考图三:
COS(A)=(X1-Xo)/LL
A=acos(COS(A))*180/M_PI; //角度的单位为度,acos反余玄函数
然后根据两点位置关系确定角度:
if(Y1>Yo)A=A+2*(180-AA);
if(A>354||A<6)AA=0; //角度很小时按零度处理,这样容易绘制水平、垂直线的线路;当然也else if(A>84&&A<96)A=90; //可以象其它的绘图工具通过与键盘配合绘制水平或垂直线路,但这else if(A>174&&A<186)A=180; //样会影响绘图的速度,最好的处理方法是这两种方式都提供,else if(A>264&&A<276)A=270; //然后由用户选择使用哪一种方式。
A=A*M_PI/180; //转化为弧度
ii)圆心坐标的确定:
如图三所示,第n个圆心的坐标如下确定:
x1=Xo+(R*2*n+L1*n)*COS(A)  //L1为干线的长度,R为代表电杆的圆的半径
y1=Yo-(R*2*n+L1*n)*SIN(A)
圆心坐标及半径都已经确定,因而可以很容易地将此圆绘制出来。可以通过一个简单的循环语句将所有圆绘出。
iii)确定每个线段起点及终点坐标:
第n个线段起点坐标:
TL=2*R*(0.5+n-1)+L1*(n1-1)  //第n个线段起点到绘图起点的距离
Xq=Xo+TL*COS(A)  //起点X坐标   Yq=Yo-TL*SIN(A)  //起点Y坐标
第n个线段终点坐标:
TL=2*R*(0.5+n-1)+L1*n1  //第n个线段终点到绘图起点的距离
Xz=Xo+TL*COS(A)  //终点X坐标  Yz=Yo-TL*SIN(A)  //终点Y坐标
两端的坐标已经确定,所以可以很容易地绘制出此线段。可以通过一个简单的循环语句将所有圆绘出。
要想从新的起点绘制干线,就点击新的圆,此圆被选中,而以前被选中的圆将取消选中状态,从而新的圆将被作为绘图的起点。
e)下户线的绘制:
下户线的绘制过程和干线差不多,但因为在绘制下户线时,与线段相连接的是表箱(第一个线段的起点与圆相连),所以要判断线段与表箱的哪个边相交,然后求出交点的坐标,因而也就确定了每个线段的起点及终点的坐标。
下面简单介绍一下表箱坐标及线段两个端点坐标的确定,而角度的计算与干线是一样的。
表箱的中心坐标计算与圆是一样的,假设表箱中心的坐标为x1、y1,表箱的宽与高为W、H,那么表箱的左上角坐标为(x1-W/2,y1-H/2),右下角坐标为(x1+W/2,y1+H/2),由此可以很容易地绘制出表箱。
线段坐标的确定相对来说要复杂一些;因为第一个线段起点是与圆相连,所以计算与干线是一样的,下面是计算线段与表箱交点坐标的C语言子函数:
bool_fastcall AutoLinkRect(int ox,int oy,TRect R1,int LRSide,POINT*PP,float
A){
    HRGN HRgn1,HRgn2;
    POINT Pos1[4],Pos2[4];
    POINT PRO;
    if(A>=360)A=A-360;
    float AA=M_PI*A/180;
    if(A==90){
       PP->x=ox;
       if(LRSide==1)PP->y=R1.Bottom;
       else PP->y=R1.top;return true;
       }
    else if  (A==270){
       PP->x=ox;
       if(LRSide==1)PP->y=R1.Top;
       else PP->y=R1.Bottom;return true;
       }
    PRO.x=(R1.left+R1.right)/2;PRO.y=(R1.Top+R1.Bottom)/2;
    if(A<45||A>315||(A>135&&A<225)){
       Pos1[0].x=ox;Pos1[0].y=oy-2;
       Pos1[1].x=PRO.x;Pos1[1].y=PRO.y-2;
       Pos1[2].x=PRO.x;Pos1[2].y=PRO.y+2;
       Pos1[3].x=ox;Pos1[3].y=oy+2;
       }
    else{
       Pos1[0].x=ox-2;Pos1[0].y=oy;
       Pos1[1].x=PRO.x-2;Pos1[1].y=PRO.y;
       Pos1[2].x=PRO.x+2;Pos1[2].y=PRO.y;
    Pos1[3].x=ox+2;Pos1[3].y=oy;
        }
      HRgn1=CreatePolygonRgn(Pos1,4,ALTERNATE);
      Pos2[0].x=R1.Left-2;Pos2[0].y=R1.top;
      Pos2[1].x=R1.Left+2;Pos2[1].y=R1.top;
      Pos2[2].x=R1.left+2;Pos2[2].y=R1.Bottom;
      Pos2[3].x=R1.Left-2;Pos2[3].y=R1.Bottom;
      HRgn2=CreatePolygonRgn(Pos2,4,ALTERNATE);
      int kkk=CombineRgn(HRgn2,HRgn2,HRgn1,RGNN_AND);
      if(kkk>1){
         if(A>270||A<90){
            if(LRSide==1)PP->x=R1.left;
            else PP->x=R1.right;
            }
         else{
            if(LRSide==1)PP->x=R1.right;
            else PP->x=R1.Left;
            }
         PP->y=0.5+oy-1.0*(PP->x-ox)*tan(AA);
         }
      else{
         Pos2[0].x=R1.Left;Pos2[0].y=R1.Bottom-2;
         Pos2[1].x=R1.Right;Pos2[1].y=R1.Bottom-2;
         Pos2[2].x=R1.Right;Pos2[2].y=R1.Bottom+2;
         Pos2[3].x=R1.Left;Pos2[3].y=R1.Bottom+2;
         DeleteObject(HRgn2);
         HRgn2=CreatePolygonRgn(Pos2,4,ALTERNATE);
         kkk=CombineRgn(HRgn2,HRgn2,HRgn1,RGN_AND);
if(kkk>1){
if(LRSide==1)PP->y=R1.Bottom;
           else PP->y=R1.top;
           PP->x=ox+1.0*(oy-PP->y)/tan(AA);
           }
        else{
           Pos2[0].x=R1.Left;Pos2[0].y=R1.Top-2;
           Pos2[1].x=R1.Right;Pos2[1].y=R1.Top-2;
           Pos2[2].x=R1.Right;Pos2[2].y=R1.Top+2;
           Pos2[3].x=R1.Left;Pos2[3].y=R1.Top+2;
           HRgn2=CreatePolygonRgn(Pos2,4,ALTERNATE);
           kkk=CombineRgn(HRgn2,HRgn2,HRgn1,RGN_AND);
           if(kkk>1){
              if(LRSide==1)PP->y=R1.Top;
              else PP->y=R1.Bottom;
              PP->x=ox+1.0*(oy-PP->y)/tan(AA);
              }
           else{
              Pos2[0].x=R1.Right-2;Pos2[0].y=R1.top;
              Pos2[1].x=R1.Right+2;Pos2[1].y=R1.top;
              Pos2[2].x=R1.Right+2;Pos2[2].y=R1.Bottom;
              Pos2[3].x=R1.Right-2;Pos2[3].y=R1.Bottom;
              HRgn2=CreatePolygonRgn(Pos2,4,ALTERNATE);
              kkk=CombineRgn(HRgn2,HRgn2,HRgn1,RGN_AND);
              if(kkk>1){
                 if(LRSide==1)PP->x=R1.Right;
                 else PP->x=R1.Left;
                 PP->y=oy-(PP->x-ox)*tan(AA);
              }
              }
          }
      }
    DeleteObject(HRgn1);
    DeleteObject(HRgn2);
    return true;
}
函数的参数解释如下:
(ox、oy)为被绘制组合图形的起点坐标
R1为定义表箱区域的结构
LRSide用来确定是求线段的起点坐标还是终点坐标,也可以用逻辑变量
PP用来存放被求出交点的坐标值
A是线段与X轴的夹角
交点的坐标值被求出后就可以很容易地绘制线段了。
f)为了提高做图的速度,在移动鼠标进行动态做图时,可以只绘制一根贯通的直线,最后一次正式做图时再分别绘制每个线段。
g)由于在每次绘图时绘制的是一组图形,所以可以很容易确定图形之间的连接关系;本绘图方法(或方式)也可以通过直接定义角度及组合图形的数量来完成,但操作起来不直观。
以上所述仅为本发明的较佳实例而已,并非用于本发明的保护范围。

Claims (3)

1、一种快速绘制电力线路图或地理线路图的方法,其特征在于绘图步骤如下:
a)在绘图文件中设置Xo、Yo为绘制线路的纵横坐标起点,设置X1、Y1为绘制线路纵横坐标的终点,再设置R、W、H、L1、L2五个系统变量:其中R代表圆的半径,W代表表箱的宽度,H代表表箱的高度,L1代表干线每段的长度,L2代表下户线的长度,两个圆之间、圆与表箱之间、或圆与变压器之间的线段为一档,通过动态调整五个变量的设置进行线路图形的快速绘制;
b)在进行快速绘图时,先绘制干线,然后再绘制下户线,绘制干线或下户线通过键盘、菜单选择项或者通过绘图按钮进行转换;
c)进入绘制干线的功能后,根据线路需要选点点击鼠标左键,系统将在点击处绘制第一个电杆;再点击一下刚绘制的电杆,此电杆将被选中,然后移动鼠标就绘制干线,移动鼠标时不要按下鼠标的任何键;
d)线路干线的绘制。
2、根据权利要求1所述的快速绘制电力线路图或地理线路图的方法,其特征在于
i)绘制的档数计算:
假设鼠标当前位置到被选中圆的圆心之间的距离为LL,那么档数n=LL/(L1+2*R),四舍五入取整数值即可,其中L1、R是上面提及的预先定义的系统变量;LL可以通过坐标系中两点之间的距离公式求得:
LL=sqrt((X1-Xo)2+(Y1-Yo)2)
其中sqrt是求算术平方根函数,X1、Y1是当前鼠表位置的坐标,Xo、Yo是被选中的、作为起点的圆的中心坐标;
档的数量与要绘制圆及线段的数量相等,在确定每个圆的圆心坐标及线段两端点的坐标之前,先确定起点与鼠标当前位置两点之间的连线与X轴之间的夹角,计算公式如下:
COS(A)=(X1-Xo)/LL
A=acos(COS(A))*180/M_PI;角度的单位为度,acos反余玄函数
然后根据两点位置关系确定角度:if(Y1>Yo)A=A+2*(180-AA);
if(A>354||A<6)AA=0;角度很小时按零度处理,这样容易绘制水平、垂直线的线路;
else if(A>84&&A<96)A=90;与其它的绘图工具相同,通过与键盘配合绘制水平或垂直线路;
else if(A>174&&A<186)A=180;影响绘图的速度,处理方法是上述两种方式都提供;
else if(A>264&&A<276)A=270;用方式由用户选择使;
A=A*M_PI/180;//转化为弧度;
ii)圆心坐标的确定:
第n个圆心坐标的确定公式如下:
x1=Xo+(R*2*n+L1*n)*COS(A)L1为干线的长度,R为代表电杆的圆的半径
y1=Yo-(R*2*n+L1*n)*SIN(A)确定圆心坐标及半径后,通过简单循环语句绘出所有圆;
iii)确定每个线段起点及终点坐标:
第n个线段起点坐标的计算:
TL=2*R*(0.5+n-1)+L1*(n1-1)计算第n个线段起点到绘图起点的距离
Xq=Xo+TL*COS(A)起点X坐标的计算
Yq=Yo-TL*SIN(A)起点Y坐标的计算
第n个线段终点坐标:
TL=2*R*(0.5+n-1)+L1*n1第n个线段终点到绘图起点距离计算
Xz=Xo+TL*COS(A)终点X坐标的计算
Yz=Yo-TL*SIN(A)终点Y坐标的计算
确定两端坐标绘制出此线段,通过一个循环语句绘出所有圆;
iv)要从新的起点绘制干线,点击新的圆,此圆被选中后,以前被选中的圆将取消选中状态,新的圆将被作为绘图的起点;
v)下户线的绘制:
下户线的绘制过程和干线差不多,但因为在绘制下户线时,与线段相连接的是表箱,第一个线段的起点与圆相连,设定线段与表箱相交的边为交点坐标,确定每个线段的起点及终点的坐标。
3、根据权利要求1所述的快速绘制电力线路图或地理线路图的方法,其特征在于表箱坐标及线段两个端点坐标的确定;
表箱的中心坐标计算与圆的计算相同,假设表箱中心的坐标为x1、y1,表箱的宽与高为W、H,那么表箱的左上角坐标为(x1-W/2,y1-H/2),右下角坐标为(x1+W/2,y1+H/2),由此可以很容易地绘制出表箱;
计算线段与表箱交点坐标的C语言子函数:
    bool_fastcall AutoLinkRect(int ox,int oy, TRect R1,int LRSide,POINT*PP,float
A){
        HRGN HRgn1,HRgn2;
POINT Pos1[4],Pos2[4];
POINT PRO;
    if(A>=360)A=A-360;
    float AA=M_PI*A/180;
    if(A==90){
       PP->x=ox;
       if(LRSide==1)PP->y=R1.Bottom;
       else PP->y=R1.top;return true;
       }
    else if(A==270){
       PP->x=ox;
       if(LRSide==1)PP->y=R1.Top;
       else PP->y=R1.Bottom;return true;
       }
    PRO.x=(R1.left+R1.right)/2;PRO.y=(R1.Top+R1.Bottom)/2;
    if(A<45||A>315||(A>135&&A<225)){
       Pos1[0].x=ox;Pos1[0].y=oy-2;
       Pos1[1].x=PRO.x;Pos1[1].y=PRO.y-2;
       Pos1[2].x=PRO.x;Pos1[2].y=PRO.y+2;
       Pos1[3].x=ox;Pos1[3].y=oy+2;
       }
    else{
       Pos1[0].x=ox-2;Pos1[0].y=oy;
       Pos1[1].x=PRO.x-2;Pos1[1].y=PRO.y;
       Pos1[2].x=PRO.x+2;Pos1[2].y=PRO.y;
       Pos1[3].x=ox+2;Pos1[3].y=oy;
       }
    HRgn1=CreatePolygonRgn(Pos1,4,ALTERNATE);
    Pos2[0].x=R1.Left-2;Pos2[0].y=R1.top;
Pos2[1].x=R1.Left+2;Pos2[1].y=R1.top;
Pos2[2].x=R1.left+2;Pos2[2].y=R1.Bottom;
Pos2[3].x=R1.Left-2;Pos2[3].y=R1.Bottom;
HRgn2=CreatePolygonRgn(Pos2,4,ALTERNATE);
int kkk=CombineRgn(HRgn2,HRgn2,HRgn1,RGN_AND);
if(kkk>1){
    if(A>270||A<90){
       if(LRSide==1)PP->x=R1.left;
       else PP->x=R1.right;
       }
    else{
       if(LRSide==1)PP->x=R1.right;
       else PP->x=R1.Left;
       }
    PP->y=0.5+oy-1.0*(PP->x-ox)*tan(AA);
    }
else{
    Pos2[0].x=R1.Left;Pos2[0].y=R1.Bottom-2;
    Pos2[1].x=R1.Right;Pos2[1].y=R1.Bottom-2;
    Pos2[2].x=R1.Right;Pos2[2].y=R1.Bottom+2;
    Pos2[3].x=R1.Left;Pos2[3].y=R1.Bottom+2;
    DeleteObject(HRgn2);
    HRgn2=CreatePolygonRgn(Pos2,4,ALTERNATE);
    kkk=CombineRgn(HRgn2,HRgn2,HRgn1,RGN_AND);
    if(kkk>1){
       if(LRSide==1)PP->y=R1.Bottom;
       else PP->y=R1.top;
       PP->x=ox+1.0*(oy-PP->y)/tan(AA);
       }
else{
          Pos2[0].x=R1.Left;Pos2[0].y=R1.Top-2;
          Pos2[1].x=R1.Right;Pos2[1].y=R1.Top-2;
          Pos2[2].x=R1.Right;Pos2[2].y=R1.Top+2;
          Pos2[3].x=R1.Left;Pos2[3].y=R1.Top+2;
          HRgn2=CreatePolygonRgn(Pos2,4,ALTERNATE);
          kkk=CombineRgn(HRgn2,HRgn2,HRgn1,RGN_AND);
          if(kkk>1){
             if(LRSide==1)PP->y=R1.Top;
             else PP->y=R1.Bottom;
             PP->x=ox+1.0*(oy-PP->y)/tan(AA);
             }
          else{
             Pos2[0].x=R1.Right-2;Pos2[0].y=R1.top;
             Pos2[1].x=R1.Right+2;Pos2[1].y=R1.top;
             Pos2[2].x=R1.Right+2;Pos2[2].y=R1.Bottom;
             Pos2[3].x=R1.Right-2;Pos2[3].y=R1.Bottom;
             HRgn2=CreatePolygonRgn(Pos2,4,ALTERNATE);
             kkk=CombineRgn(HRgn2,HRgn2,HRgn1,RGN_AND);
             if(kkk>1){
                if(LRSide==1)PP->x=R1.Right;
                else PP->x=R1.Left;
                PP->y=oy-(PP->x-ox)*tan(AA);
                }
             }
          }
       }
    DeleteObject(HRgn1);
    DeleteObject(HRgn2);
    return true;
}。
CN200710015877.8A 2007-06-07 2007-06-07 一种快速绘制电力线路图或地理线路图的方法 Expired - Fee Related CN101086787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710015877.8A CN101086787B (zh) 2007-06-07 2007-06-07 一种快速绘制电力线路图或地理线路图的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710015877.8A CN101086787B (zh) 2007-06-07 2007-06-07 一种快速绘制电力线路图或地理线路图的方法

Publications (2)

Publication Number Publication Date
CN101086787A true CN101086787A (zh) 2007-12-12
CN101086787B CN101086787B (zh) 2015-09-09

Family

ID=38937728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710015877.8A Expired - Fee Related CN101086787B (zh) 2007-06-07 2007-06-07 一种快速绘制电力线路图或地理线路图的方法

Country Status (1)

Country Link
CN (1) CN101086787B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136768A (zh) * 2011-11-25 2013-06-05 广东省电力调度中心 电力通信网络图形标准化软件
CN113177100A (zh) * 2021-05-22 2021-07-27 张健 一种快速绘制和修订线路定位图的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85106870A (zh) * 1985-09-17 1986-07-02 中国民用航空学院 三维体视投影图自动作图法
CN1392518A (zh) * 2002-04-13 2003-01-22 李福禄 电力线路线损实时监测分析技术
CN1657725A (zh) * 2004-02-20 2005-08-24 江苏省电力公司江都市供电公司 张贴式电杆号的制作方法
US20060154074A1 (en) * 2005-01-11 2006-07-13 Japan Aviation Electronics Industry Limited Wiring pattern drawing formation method and circuit board manufactured by using the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85106870A (zh) * 1985-09-17 1986-07-02 中国民用航空学院 三维体视投影图自动作图法
CN1392518A (zh) * 2002-04-13 2003-01-22 李福禄 电力线路线损实时监测分析技术
CN1657725A (zh) * 2004-02-20 2005-08-24 江苏省电力公司江都市供电公司 张贴式电杆号的制作方法
US20060154074A1 (en) * 2005-01-11 2006-07-13 Japan Aviation Electronics Industry Limited Wiring pattern drawing formation method and circuit board manufactured by using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136768A (zh) * 2011-11-25 2013-06-05 广东省电力调度中心 电力通信网络图形标准化软件
CN113177100A (zh) * 2021-05-22 2021-07-27 张健 一种快速绘制和修订线路定位图的方法

Also Published As

Publication number Publication date
CN101086787B (zh) 2015-09-09

Similar Documents

Publication Publication Date Title
CN102360398B (zh) 基于iec61850的cad电力图形生成解析方法
CN102332056B (zh) 基于信息可视化技术的房产数据可视化系统
CN106056349A (zh) 一种省地县三级电网规划gis绘图系统及方法
CN103020335A (zh) 一种配电网地理接线图到区域正交图的自动转换方法
CN103066698A (zh) 在调配系统中自动生成可视化的电网潮流图的实现方法
CN103065348A (zh) 基于骨骼动作库的二维动画自动生成方法
CN106895841B (zh) 一种应用于变电站的矢量电子地图创建方法
CN106528910A (zh) 电气设计平台及其方法
CN102945313A (zh) 一种开放式虚拟实验教学内容构建与展示方法
CN104392388B (zh) 电网gis中变电站联络图的自动成图方法及其装置
CN105447765A (zh) 一种配电网馈线自动成图方法
CN102634933A (zh) 一种电子花样机花样编辑和花样生成方法
CN101086787A (zh) 一种快速绘制电力线路图或地理线路图的方法
CN103383707B (zh) 基于厂站和杆塔经纬度坐标自动生成电网系统接线图的方法
Beirão et al. Structuring a generative model for urban design: linking GIS to shape grammars
CN103207953B (zh) 一种拟建变电站选址进出线投资等值线的确定方法及应用方式
CN101593456A (zh) 一种地图图例的快速自适应布局方法
CN113066176B (zh) 一种地图数据处理方法、装置、设备及存储介质
CN111143716B (zh) 一种基于湖泊对象的地图自适应显示方法及装置
CN116662473A (zh) 空间数据库建立方法、装置、设备及存储介质
CN111339625A (zh) 构建风力发电机组基础模型的方法、装置及其系统
Kim et al. Depicting a Landscape Architectural Installation Using Augmented Reality
Yin et al. Quantitative analysis of architectural landscape vision based on 3D urban model
CN113687755B (zh) 图元化gis的实现装置、人机交互系统及使用方法
Stifter et al. An example of integrating open source modelling frameworks: The integration of GIS in PSAT

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150909

Termination date: 20210607