本文主要介绍Cohen-Sutherland算法。该算法没有用很多if语句来寻找直线的位置,而是把裁剪区域分成了许多部分,然后给每一段被裁剪的线段的两端分配一位代码。而后,只采用少量的if语句或一个case语句,就能判断出具体情况。下图给出了原理示意图。
算法流程如下:
伪代码如下:
1 | int Clip_Line(int &x1, int &y1, int &x2, int &y2) { |
Technology saves the world.
本文主要介绍Cohen-Sutherland算法。该算法没有用很多if语句来寻找直线的位置,而是把裁剪区域分成了许多部分,然后给每一段被裁剪的线段的两端分配一位代码。而后,只采用少量的if语句或一个case语句,就能判断出具体情况。下图给出了原理示意图。
算法流程如下:
伪代码如下:
1 | int Clip_Line(int &x1, int &y1, int &x2, int &y2) { |