双线绘制的计算方法

时间:2022-09-19 12:34:56

双线绘制的计算方法

摘要: 在现代的多种行业的计算机辅助处理软件中,图形处理是必不可少的,然而我们实际遇到的图形是非常复杂的,面对复杂的图形,我们要做的首先就是对图形进行分析,然后对图形进行数学描述,在此基础上进行分析图形的形成过程,进而实现对图形的操作,实现我们想要实现的效果。

Abstract: In the various modern computer-aided processing soft wares, graphics processing is essential, but the graphics we actually encounter are very complex. The first thing to do is to analyze the graphic, and then mathematical description of the graphics. Based on this, the formation process of analysis graphics is carried out, and then to realize the graphics operation, thus achieving the required effect.

关键词: 图形;角度;偏移

Key words: graphics;angle;offset

中图分类号:TP31 文献标识码:A 文章编号:1006-4311(2014)11-0219-02

在现代的多种行业的计算机辅助处理软件中,图形处理是必不可少的,然而我们实际遇到的图形是非常复杂的,面对复杂的图形,我们要做的首先就是对图形进行分析,然后对图形进行数学描述,在此基础上进行分析图形的形成过程,进而实现对图形的操作,实现我们想要实现的效果。

在比较常用的绘图软件中(如Autodesk CAD)都会有线段偏移或绘制双线的功能,它的应用非常广泛。但是这些软件绘制的双线不一定能满足我们的要求,所以我们非常有必要了解其内部的算法,以更好在我们的工作中应用,下面我将就绘制双线的计算方法进行一下说明。

绘制双线要求:已知折线a,折线a的不同节点的角度任意,要求绘制到折线a的距离为d的两条折线,在a的不同的位置d的大小是可变的,并且要求绘制的两条折线中间不能中断。

首先从一般性的图形入手,如图1所示,由中心线a向两侧偏移指定的距离来得到两条边线。

首先为了使图形便于说明问题,对图形上各个节点进行编号,如图2所示。

要根据中心线得到两条轮廓线,最主要的是要得到轮廓线上各个节点的坐标(如点A、B、C、K、L、M等),而这些节点是由AB与BC或是KL与LM这样的相邻的直线的相交而得到的。最先要做的就是要得到AB、BC、KL、MN样的直线。根据J、I两点所在的直线依据指定的距离得到垂直于其的方向的两条直线,这只需要根据解析几何的公式就能直接得到。同理可以得到BC和LM两条直线,然后做直线AB与直线BC的交点就能得到点B,做直线KL与直线LM的交点就能得到点L。现在问题出现了,如何分清直线AB与直线BC相交还是与直线LM相交呢?在任意给定的图形空间中是没有上下左右之分的。

经过研究发现其中的规律,将直线AB、BC、KL、LM、JL、LH都看成是有方向的直线,则有如下结论,将点J看作笛卡尔直角坐标系的原点,设原点到直线JI的角度为A1,原点到直线JB的角度为A2,原点到直线JL的角度为A3。如果A1,A2,A3这三个角有的角度在第一象限,有的在第四象限,则用第四象限的这个角度减去360度,经过这番处理后,三个角度始保持这样的关系:A2

在得到点B和点L之后,用同样的方法,将点I看作是坐标系的原点,从而得到点M和点C,依次类推,我们就得到了折线a偏移指定距离d的两条折线。

上述是比较理想的状况,在实践中还会有其他问题。

当距离d到a的距离在不同的位置宽度不同的时候就需要做不同的处理。如图3所示,在点L处的宽度发生变化,这种情况下首先要根据一般情况下的理论,计算得到直线AB、直线FG、直线CD、直线HI,然后根据实际情况计算得出直线HC,然后通过计算直线FG与HC的交点得到点G,通过直线HI与直线HC的交点得到点H,从而得到线段HG;计算直线AB与直线HC的交点得到点B,计算线段CD与直线HC得到交点C,从而得到直线BC。从而得到如图3所示的图形。

在绘制这种偏移线的时候还有三个方向的情况,如图4所示在点B处折线有三个方向,为了得到如图所示的效果,在绘制过程中,要有不同的处理方法。首先不考虑三个方向的情况,例如先绘制折线ABC对应的线段,但是要记录点B,并且记录与点B相关的直线ML、LK、EF、IJ。当这些完成之后,在重新绘制直线BD对应的折线,用直线FG与HI和直线EF与IJ分别相交,并且取得交点F和I。然后修改这四条线段的端点为点I和点F。这样就解决了三个方向的多分支问题。如果有四个方向,可以用同样的方法进行解决,只不过计算的过程更加复杂一些。

下面就绘制图形时候得一些特殊情况进行说明。以图2为例,当直线JI和直线IH之间的夹角为0时,直线AB与直线BC、直线KL与直线LM之间的夹角也为0,他们就成为了同一条直线,这时采用取直线的交点的方法来得到点B和点L是错误的。其实在将点I在垂直于直线JL的方向上指定距离得到的两个点就是轮廓线上的节点,只不过要分清这两个节点直线JI的那一侧。在应用中还有其他的一些边界需要考虑,如当中心线只有两个节点的情况,轮廓线的两段如何进行封闭等在实际应用中都应给予考虑。

运用上述理论,不仅可以绘制任意的双侧折线,而且可以绘制单侧的双折线或是多条折线。

参考文献:

[1]GB 50026-2007,工程测量规范[S].

[2]CJJ/T8-2011,城市测量规范[S].

[3]潘志庚,胡小强.中国图形工程:2003[J].中国图象图形学报,2004(06).

上一篇:好消息是宝,坏消息是贝 下一篇:新规则下的事业单位财务制度建设