精华内容
下载资源
问答
  • 折线平行线的计算方法

    千次阅读 2017-10-10 07:57:09
    给定个简单多边形,多边形按照顺时针或者逆时针数许排列 内部等距离缩小或者外部放大多边形,...平行于L1和L2,平行线间距是L,并且位于多边形内部边,交于Qi 我们要计算出Qi坐标 如图, P

    给定一个简单多边形,多边形按照顺时针或者逆时针的数许排列

    内部等距离缩小或者外部放大的多边形,实际上是由距离一系列平行已知多边形的边,并且距离为L的线段所构成的。


    外围的是原多边形,内侧是新的多边形

    算法构造

    多边形的相邻两条边,L1和L2,交于Pi点

    做平行于L1和L2,平行线间距是L的,并且位于多边形内部的两条边,交于Qi

    我们要计算出Qi的坐标

    如图,


    PiQi向量,显然是等于平行四边形的两个相邻边的向量v1和v2的和的

    而v1和v2向量的方向,就是组成多边形的边的方向,可以用顶点差来表示

    v1和v2向量的长度是相同的,等于平行线间距L与两个线段夹角的sin值的除法。

    即: Qi = Pi + (v1 + v2)

        Qi = Pi + L / sinθ * ( Normalize(v2) + Normalize(v1))

        Sin θ = |v1 × v2 | /|v1|/|v2|

    计算步骤:

    ⑴、获取多边形顶点数组PList;

    ⑵、计算DPList[Vi+1-Vi];

    ⑶、单位化NormalizeDPList,得到NDP[DPi];(用同一个数组存储)

    ⑷、Sinα = Dp(i+1) X DP(i);

    ⑸、Qi = Pi + d/sinα (NDPi+1-NDPi)

    ⑹、这样一次性可以把所有顶点计算完。

    注意,交换Qi表达式当中NDPi+1-NDPi的顺序就可以得到外部多边形顶点数组。

    用Swift实现的代码如下,在playground可直接运行


    import Foundation


    class Point2D  {

        var x:Double =0

        var y:Double =0

        init(_ x:Double,_ y:Double){self.x=x;self.y=y}

        init( point:Point2D){x=point.x;y=point.y}

    }


    //func += (inout left:Point2D, right:Point2D )     { left.x+=right.x;left.y += right.y;}

    func +  (left:Point2D, right:Point2D)->Point2D   {return Point2D(left.x+right.x, left.y+right.y)}

    func -  (left:Point2D, right:Point2D)->Point2D   {return Point2D(left.x-right.x, left.y-right.y)}

    func *  (left:Point2D, right:Point2D)->Double    {return left.x*right.x + left.y*right.y}

    func *  (left:Point2D, value:Double )->Point2D   {return Point2D(left.x*value, left.y*value)}


    // 自定义的向量差乘运算符号,

    infix operator ** {}

    func ** (left:Point2D, right:Point2D)->Double {return left.x*right.y - left.y*right.x}


    var pList   = [Point2D]()  // 原始顶点坐标, 在initPList函数当中初始化赋值

    var dpList  = [Point2D]() // 边向量dpList[i+1]- dpLIst[i] 在 initDPList函数当中计算后赋值

    var ndpList = [Point2D]() // 单位化的边向量, 在initNDPList函数当中计算后肤质,实际使用的时候,完全可以用dpList来保存他们

    var newList = [Point2D]()  // 新的折线顶点,在compute函数当中,赋值


    // 初始化顶点队列

    func initPList(){

        pList  = [ Point2D(0,0),

                   Point2D(0,100),

                   Point2D(100,100),

                   Point2D(50,50),

                   Point2D(100,0),

                 ]

    }


    // 初始化dpList  两顶点间向量差

    func initDPList()->Void{

        print("计算dpList")

        var index  : Int

        for index=0; index<pList.count; ++index{

            dpList.append(pList[index==pList.count-1 ? 0: index+1]-pList[index]);

            print("dpList[\(index)]=(\(dpList[index].x),\(dpList[index].y))")

        }

    }


    // 初始化ndpList,单位化两顶点向量差

    func initNDPList()->Void{

        print("开始计算ndpList")

        var index=0;

        for ; index<dpList.count; ++index {

            ndpList.append(dpList[index] * ( 1.0 /sqrt(dpList[index]*dpList[index])));

            print("ndpList[\(index)]=(\(ndpList[index].x),\(ndpList[index].y))")

        }

    }


    // 计算新顶点, 注意参数为负是向内收缩, 为正是向外扩张

    func computeLine(dist:Double)->Void{

        print("开始计算新顶点")

        var index = 0

        let count = pList.count;

        for ; index<count; ++index {

            var point:Point2D

            let startIndex = index==0 ? count-1 : index-1

            let endIndex   = index

            

            let sina =ndpList[startIndex] **ndpList[endIndex]

            let length = dist / sina

            let vector =ndpList[endIndex] -ndpList[startIndex]

            point = pList[index] + vector*length

            newList.append(point);

            print("newList[\(index)] = (\(point.x),\(point.y))")

        }

    }


    // 整个算法的调用顺序

    func run()->Void {

        initPList();

        initDPList()

        initNDPList()

        computeLine(-5)  // 负数为内缩, 正数为外扩。 需要注意算法本身并没有检测内缩多少后折线会自相交,那不是本代码的示范意图

    }


    run()


    展开全文
  • 三等分一个线段(tripartition(AB)) 输入:线段 AB 输出:将 AB 等分的两个点,H、G 从 B 发出一条(任意一条)与 AB 不重合的射线 BC...过 E AF 的平行线,交AB 于 H 过 D AF(EH)的平行线,交 AB 于 G。

    三等分一个线段(tripartition(AB))


    这里写图片描述

    输入:线段 AB
    输出:将 AB 等分的两个点,H、G

    1. 从 B 发出一条(任意一条)与 AB 不重合的射线 BC
    2. 任取 BC 上三点 D、E、F,使得 |BD|=|DE|=|EF|(对长度没用任何要求)
    3. 连接 FA
    4. 过 E 做 AF 的平行线,交AB 于 H
    5. 过 D 做 AF(EH)的平行线,交 AB 于 G。
    展开全文
  • 【初中数学】102条初中几何辅导线规律线、角、相交线、平行线 规律1 如果平面上有n(n≥2)个点,其中任何三点都不在同一直线上,那么每两点画一条直线,一共可以画出n(n-1)条。 规律2 平面上n条直线最多可...

    672cdb058cecb281a8ade5375fb50463.png【初中数学】102条做初中几何辅导线的规律

    线、角、相交线、平行线

      规律1

      如果平面上有n(n≥2)个点,其中任何三点都不在同一直线上,那么每两点画一条直线,一共可以画出n(n1)条。

      规律2

      平面上的n条直线最多可把平面分成〔n(n+1)+1〕个部分。

      规律3

      如果一条直线上有n个点,那么在这个图形中共有线段的条数为n(n1)条。

      规律4

      线段(或延长线)上任一点分线段为两段,这两条线段的中点的距离等于线段长的一半。

      规律5

      有公共端点的n条射线所构成的交点的个数一共有n(n1)个。

      规律6

      如果平面内有n条直线都经过同一点,则可构成小于平角的角共有2n(n1)个。

      规律7

      如果平面内有n条直线都经过同一点,则可构成n(n1)对对顶角。

      规律8

      平面上若有n(n≥3)个点,任意三个点不在同一直线上,过任意三点作三角形一共可作出n(n1)(n2)个。

      规律9

      互为邻补角的两个角平分线所成的角的度数为90°

      规律10

      平面上有n条直线相交,最多交点的个数为n(n1)个。

      规律11

      互为补角中较小角的余角等于这两个互为补角的角的差的一半。

      规律12

      当两直线平行时,同位角的角平分线互相平行,内错角的角平分线互相平行,同旁内角的角平分线互相垂直。

    规律13

      已知ABDE,如图⑴~⑹,规律如下:

      规律14

      成“8”字形的两个三角形的一对内角平分线相交所成的角等于另两个内角和的一半。

    三角形部分

      规律15

      在利用三角形三边关系证明线段不等关系时,如果直接证不出来,可连结两点或延长某边构造三角形,使结论中出现的线段在一个或几个三角形中,再利用三边关系定理及不等式性质证题。

      注意:利用三角形三边关系定理及推论证题时,常通过引辅助线,把求证的量(或与求证有关的量)移到同一个或几个三角形中去然后再证题。

      规律16

      三角形的一个内角平分线与一个外角平分线相交所成的锐角,等于第三个内角的一半。

      规律17

      三角形的两个内角平分线相交所成的钝角等于90o加上第三个内角的一半。

    规律18

      三角形的两个外角平分线相交所成的锐角等于90o减去第三个内角的一半。

      规律19

      从三角形的一个顶点作高线和角平分线,它们所夹的角等于三角形另外两个角差(的绝对值)的一半。

      注意:同学们在学习几何时,可以把自己证完的题进行适当变换,从而使自己通过解一道题掌握一类题,提高自己举一反三、灵活应变的能力。

      规律20

      在利用三角形的外角大于任何和它不相邻的内角证明角的不等关系时,如果直接证不出来,可连结两点或延长某边,构造三角形,使求证的大角在某个三角形外角的位置上,小角处在内角的位置上,再利用外角定理证题。

      规律21

      有角平分线时常在角两边截取相等的线段,构造全等三角形。

      规律22

      有以线段中点为端点的线段时,常加倍延长此线段构造全等三角形。

      规律23

      在三角形中有中线时,常加倍延长中线构造全等三角形。

      规律24

      截长补短作辅助线的方法

      截长法:在较长的线段上截取一条线段等于较短线段;

      补短法:延长较短线段和较长线段相等.

      这两种方法统称截长补短法。

      当已知或求证中涉及到线段abcd有下列情况之一时用此种方法:

    ab

    a±b= c

    a±b= c±d

      规律25

      证明两条线段相等的步骤:

    观察要证线段在哪两个可能全等的三角形中,然后证这两个三角形全等。

    若图中没有全等三角形,可以把求证线段用和它相等的线段代换,再证它们所在的三角形全等。

    如果没有相等的线段代换,可设法作辅助线构造全等三角形。

      规律26

      在一个图形中,有多个垂直关系时,常用同角(等角)的余角相等来证明两个角相等。

      规律27

      三角形一边的两端点到这边的中线所在的直线的距离相等。

        规律28

      条件不足时延长已知边构造三角形。

      规律29

      连接四边形的对角线,把四边形问题转化成三角形来解决问题。

      规律30

      有和角平分线垂直的线段时,通常把这条线段延长。可归结为角分垂等腰归

      规律31

      当证题有困难时,可结合已知条件,把图形中的某两点连接起来构造全等三角形。

      规律32

      当证题缺少线段相等的条件时,可取某条线段中点,为证题提供条件。

      规律33

      有角平分线时,常过角平分线上的点向角两边做垂线,利用角平分线上的点到角两边距离相等证题。

      规律34

      有等腰三角形时常用的辅助线

    作顶角的平分线,底边中线,底边高线

    有底边中点时,常作底边中线

    将腰延长一倍,构造直角三角形解题

    常过一腰上的某一已知点做另一腰的平行线

    常过一腰上的某一已知点做底的平行线

    常将等腰三角形转化成特殊的等腰三角形------等边三角形

      规律35

      有二倍角时常用的辅助线

    构造等腰三角形使二倍角是等腰三角形的顶角的外角

    平分二倍角

    加倍小角

      规律36

      有垂直平分线时常把垂直平分线上的点与线段两端点连结起来。

      规律37

      有垂直时常构造垂直平分线。

      规律38

      有中点时常构造垂直平分线。

      规律39

      当涉及到线段平方的关系式时常构造直角三角形,利用勾股定理证题。

      规律40

      条件中出现特殊角时常作高把特殊角放在直角三角形中。

    四边形部分

      规律41

      平行四边形的两邻边之和等于平行四边形周长的一半。

      规律42

      平行四边形被对角线分成四个小三角形,相邻两个三角形周长之差等于邻边之差。

      规律43

      有平行线时常作平行线构造平行四边形。

      规律44

      有以平行四边形一边中点为端点的线段时常延长此线段。

      规律45

      平行四边形对角线的交点到一组对边距离相等。

           规律46

      平行四边形一边(或这边所在的直线)上的任意一点与对边的两个端点的连线所构成的三角形的面积等于平行四边形面积的一半。

      规律47

      平行四边形内任意一点与四个顶点的连线所构成的四个三角形中,不相邻的两个三角形的面积之和等于平行四边形面积的一半。

      规律48

      任意一点与同一平面内的矩形各点的连线中,不相邻的两条线段的平方和相等。

      规律49

      平行四边形四个内角平分线所围成的四边形为矩形。

      规律50

      有垂直时可作垂线构造矩形或平行线。

    --End--

    综合整理:中学教师联盟图文来源:网络免责声明:中学教师联盟始终尊重原创,如有侵权请联系删除

    2a4eeecc8458a367c2bb09765ac3ac80.png

    展开全文
  • 注意把每个点x,y坐标加10001,因为线段树节点下标不能为负和0,(当然用离散化就不用这样处理了),每加进来一条线段,就对相应线段cover值加1,然后求出当前已经被覆盖区间总长度L,然后:把这次求出 ...

    2014-09-25 01:41:49

    思路:基本思路和p1151差不多,首先把线段分成平行于x轴和平行于y轴的两组,分别考虑。注意把每个点的x,y坐标加10001,因为线段树节点下标不能为负和0,(当然用离散化做就不用这样处理了),每加进来一条线段,就对相应的线段cover值加1,然后求出当前已经被覆盖的区间的总长度L,然后:把这次求出的 L 和上一次求出的 L’ 作差取绝对值,就得到了因为加入当前线段而新增的周长。就这样逐个计算累加,即得答案。

      自己YY水过。。。QAQ

      1 /*************************************************************************
      2     > File Name: p1177.cpp
      3     > Author: Nature
      4     > Mail: 564374850@qq.com
      5     > Created Time: Wed 24 Sep 2014 10:39:20 PM CST
      6 ************************************************************************/
      7 
      8 #include <cstdio>
      9 #include <cstring>
     10 #include <cstdlib>
     11 #include <cmath>
     12 #include <vector>
     13 #include <queue>
     14 #include <iostream>
     15 #include <algorithm>
     16 using namespace std;
     17 typedef long long ll;
     18 const int INF = 1 << 29;
     19 const int maxn = 10010;
     20 const int RA = 20000;
     21 
     22 struct Edge{
     23     int st,p1,p2,flag;
     24     inline friend bool operator < (Edge a,Edge b){
     25         return a.st < b.st;
     26     }
     27 }ey[maxn],ex[maxn];
     28 
     29 struct node{
     30     int l,r;
     31     int cover,len;
     32 }a[maxn << 4];
     33 
     34 int n;
     35 int y[maxn],x[maxn];
     36 
     37 void Build_tree(int pos,int l,int r){
     38     a[pos].l = l;
     39     a[pos].r = r;
     40     a[pos].cover = a[pos].len = 0;
     41     if(l + 1 == r)
     42         return;
     43     int mid = l + (r - l) / 2;
     44     Build_tree(pos << 1,l,mid);
     45     Build_tree(pos << 1 | 1,mid,r);
     46 }
     47 
     48 void Cal_len(int pos){
     49     if(a[pos].cover >= 1)
     50         a[pos].len = a[pos].r - a[pos].l;
     51     else if(a[pos].l + 1 == a[pos].r)
     52         a[pos].len = 0;
     53     else
     54         a[pos].len = a[pos << 1].len + a[pos << 1 | 1].len;
     55 }
     56 
     57 void Update(int pos,int l,int r,Edge t){
     58     if(a[pos].l == t.p1 && a[pos].r == t.p2){
     59         a[pos].cover += t.flag;
     60         Cal_len(pos);
     61         return;
     62     }
     63     int mid = l + (r - l) / 2;
     64     if(t.p2 <= mid) Update(pos << 1,l,mid,t);
     65     else if(t.p1 >= mid) Update(pos << 1 | 1,mid,r,t);
     66     else{
     67         Edge tmp = t;
     68         tmp.p2 = mid;
     69         Update(pos << 1,l,mid,tmp);
     70         tmp.p2 = t.p2;
     71         tmp.p1 = mid;
     72         Update(pos << 1 | 1,mid,r,tmp);
     73     }
     74     Cal_len(pos);
     75 }
     76 
     77 int main(){
     78     //freopen("in","r",stdin);
     79     int x1,y1,x2,y2,c = 0;
     80     scanf("%d",&n);
     81     for(int i = 1; i <= n; ++i){
     82         scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
     83         x1 += 10001;
     84         y1 += 10001;
     85         x2 += 10001;
     86         y2 += 10001;
     87 
     88         ey[++c].st = x1;
     89         ey[c].p1 = y1;
     90         ey[c].p2 = y2;
     91         ey[c].flag = 1;
     92         y[c] = y1;
     93         ex[c].st = y1;
     94         ex[c].p1 = x1;
     95         ex[c].p2 = x2;
     96         ex[c].flag = 1;
     97         x[c] = x1;
     98 
     99         ey[++c].st = x2;
    100         ey[c].p1 = y1;
    101         ey[c].p2 = y2;
    102         ey[c].flag = -1;
    103         y[c] = y2;
    104         ex[c].st = y2;
    105         ex[c].p1 = x1;
    106         ex[c].p2 = x2;
    107         ex[c].flag = -1;
    108         x[c] = x2;
    109     }
    110     sort(ey + 1,ey + c + 1);
    111     sort(ex + 1,ex + c + 1);
    112     sort(y + 1,y + c + 1);
    113     sort(x + 1,x + c + 1);
    114     int wide = 0,high = 0,pre = 0;
    115     Build_tree(1,1,RA);
    116     for(int i = 1; i <= c; ++i){
    117         Update(1,1,RA,ey[i]);
    118         wide += abs(a[1].len - pre);
    119         pre = a[1].len;
    120     }
    121     Build_tree(1,1,RA);
    122     pre = 0;
    123     for(int i = 1; i <= c; ++i){
    124         Update(1,1,RA,ex[i]);
    125         high += abs(a[1].len - pre);
    126         pre = a[1].len;
    127     }
    128     printf("%d\n",wide + high);
    129     return 0;
    130 }

     

    转载于:https://www.cnblogs.com/naturepengchen/articles/3991944.html

    展开全文
  • 当进入一条线段时..通过二分方式确定其左右点对应离散值...  扫描线..可以看成一根平行于x轴直线..至y=0开始往上扫..直到扫出最后一条平行于x轴边..但是真正在做的时候..不需要完全模拟这个过程..扫描线...
  • 最近在补数学和几何,没啥好写,因为已经决定每天至少写一篇了,今天随便拿个题水水。 题目大意:给你N个边平行于坐标轴矩形,求它们并周长。...我们假设有一条横着直线(这条就是扫描线啦)从所有矩形...
  • 这人讲很清楚了。我就再说一些细节。了离散化之后时间和空间...线段树负责维护其实是一个线段覆盖问题,我每个节点表示一条线段,即a[l]a[r+1],所以我建树只建到m-1即可。复杂度应该是O(nlogn)O(nlogn)
  • “可见”定义为,两条线段能由一条水平先连接但不交于其它线段。“可见线段组”定义为该组内3条线段两两可见。  心得:之前看poj_3225,死活看不懂,跳过了。这道题,它们离散化方法是一样线
  • 本篇博客在上一篇博客基础上讲解,链接:线段树 引例 来看一道题目:Atlantis 这道题题意是给定若干个平行于坐标...首先得定义扫描线 ,扫描线就是一条设想的线,它可以是从水平方向上下扫描,也可以从竖直方向左
  • 和intersection求交点部分,但是不能处理两直线平行的情况,需要提前判断两条线是否平行。最后用了floyd算法来进行相连拓展。其实这里证明floyd可行性是个比较复杂过程,但是我们可以联想前面求最短路时候,...
  • 老规矩,先上效果。 图好大。。 说下第一眼看到这个动画后思路: ...不要想着线条是斜,就是个普通的线段个LineTo搞定(startX和stopX一样,仅Y不同) 线条垂直更容易,直接Canvas翻转
  • 求空间两直线之间距离

    万次阅读 2016-10-28 21:52:42
    1. 前言最近老板让写一段空间点匹配代码, 其中涉及到求空间两直线之间距离,写起来满费劲, 这里做一个记录。2. 处理思路空间两直线之间位置关系主要可以分为: 重合, 平行, 相交, 异面。2.1 异面情形...
  • 算法:模拟 分析:这道题难就难在了它的题目大意上,可以说这道题如果把题目读懂了话是非常好的。  主要的意思就是给出一条...给出多组这样的平行线段,问能选出的最多的线段的总的方案是多少种。  其实就一条
  • HDU4978概率几何

    2014-11-27 00:38:18
    由概率论书上什么抛针问题(我也不懂)可知一条长度为L的线段与间距为D的平行线相交的概率为2L / πD,由此我们可知凸包上一条线段Li与间距为D的平行线相交的概率为2Li / πD,又因为凸包上如果有一条线段与平行线...
  • 贝塞尔曲线 多点画

    2018-01-24 14:50:00
    1。这里利用的是三阶贝塞尔曲线,所以需要计算出两个控制点,因为贝塞尔曲线是两点之间的连线,...怎么计算这两个点呢,现在假设这曲线上有三个点,A为上个点,B为当前点,C为B后面的点,连接AC,AC的平行线...
  • 初中数学公式定理多,知识点杂,定理熟背是必须要做的,这样看到试题自然了然于心,提高学习效率,先要学会分类归纳整理,记得查漏...平行公理 经过直线外一点,有且只有一条直线与这条直线平行8.如果两条直线都和第...
  • 萌萌哒计算几何

    2019-10-08 22:34:09
    对,我今天又没吃药。 poj2826 喜闻乐见的计算几何题,WA几十发...否则答案就是交点和交点上方最低的点和过这个点做的平行与x轴的线围成的三角形的距离 对,思路非常简单,谁也不会想错 就是写不对! 我已弃疗 附...
  • 初中数学公式定理多,知识点杂,定理熟背是必须要做的,这样看到试题自然了然于心,提高学习效率,先要学会分类归纳整理,记得查漏...平行公理 经过直线外一点,有且只有一条直线与这条直线平行8.如果两条直线都和第...
  • 今天我们讲机械制图之基础知识学习 - 几何作图和斜度、锥度(七、八、九)几何作图 几何作图主要是告诉我们如何作图,主要讲的是... 过1和2点,3B的平行线; 这样AB的三等分点就画出来了。1、等分圆周及正多...
  • HDU1025-二分求LIS。

    2019-01-01 16:41:19
    1.题目链接。说了很多,但是一句话可以概括。在平行线的之间有一些线段,取一组线段使得任意两条不相交,求最多有多少...代表i和j之间有一条线段完这个映射之后,我们可以观察到,如果在poor cities中,i&lt...
  • 2021-01-05

    2021-01-05 22:59:14
    在这条线段与第三点之间正中位置,做一条与此线段平行的直线,即为一条距三点等距的线。然后按此方法对其余两点组合做出另外两条来 只要先从0~5一共6个数中任意选择4个,C(6,4) 再从这四个数中任意选择一个数...
  • 1 a 表示在y轴的a处画一条平行于x轴的平行线问每一次分割后最大的矩形面积为多少。思路:一开始拿到这道题我想到了线段树,然而...怎么更新边长(单点更新割点然后来维护区间最长段?)(当然用线段树是肯定能的)看了...
  • 题目大意:给定n个点的坐标,...既然是相互平分,也就是说两条线段的中点相同,他们可以确定平行四边形。这样本题就有两种解法:、将每个中点排序,然后统计相同中点的个数N,答案Ans += C(N,2),因为会有
  • 多边形等距缩放

    千次阅读 2018-07-13 15:47:34
    转:https://blog.csdn.net/happy__888/article/details/315762给定个简单多边形,...外围是原多边形,内侧是新多边形算法构造多边形相邻两边,L1和L2,交于Pi点平行于L1和L2,平行线间距是L,并且...
  • 矩形并,矩形交

    2019-03-18 11:58:07
    题意: 给出n个矩形位置,问重叠奇数个矩形面积之和。...将每一条线的两个点xxx值离散,那么一条线就代表了一个区间。 根据题目意思,用线段一下区间更新即可。这里是奇数个矩形,可以用异或来处理laz...
  • 题意:给出个矩形,绕中心旋转个角度,得到个新矩形,求两个矩形重叠部分面积。 用计算几何求线段交点方法肯定可以,嫌代码太长,实在懒得写。...对于一般情况,辅助线就很容易求出上方三
  • poj 1151

    2013-09-16 09:13:00
    分类: 线段树 题意: 求矩阵面积并 输入: 矩阵个数N,每个矩阵的左下角坐标和右上角坐标 ...将矩形沿着Y方向的平行于X轴的线作为扫描线。核心算法在于对于n – 1扫描线作的高度差用来算矩阵的...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

做一条线段的平行线