コード例 #1
0
        //---------------------------------------------------------------------

        public DistanceInterpolator3(int x1, int y1, int x2, int y2,
                                     int sx, int sy, int ex, int ey,
                                     int x, int y)
        {
            unchecked
            {
                _dx       = (x2 - x1);
                _dy       = (y2 - y1);
                _dx_start = (LineAA.Mr(sx) - LineAA.Mr(x1));
                _dy_start = (LineAA.Mr(sy) - LineAA.Mr(y1));
                _dx_end   = (LineAA.Mr(ex) - LineAA.Mr(x2));
                _dy_end   = (LineAA.Mr(ey) - LineAA.Mr(y2));
                _dist     = (AggMath.iround((double)(x + LineAA.SUBPIXEL_SCALE / 2 - x2) * (double)(_dy) -
                                            (double)(y + LineAA.SUBPIXEL_SCALE / 2 - y2) * (double)(_dx)));
                _dist_start = ((LineAA.Mr(x + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(sx)) * _dy_start -
                               (LineAA.Mr(y + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(sy)) * _dx_start);
                _dist_end = ((LineAA.Mr(x + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(ex)) * _dy_end -
                             (LineAA.Mr(y + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(ey)) * _dx_end);
                _dx       <<= LineAA.SUBPIXEL_SHIFT;
                _dy       <<= LineAA.SUBPIXEL_SHIFT;
                _dx_start <<= LineAA.MR_SUBPIXEL_SHIFT;
                _dy_start <<= LineAA.MR_SUBPIXEL_SHIFT;
                _dx_end   <<= LineAA.MR_SUBPIXEL_SHIFT;
                _dy_end   <<= LineAA.MR_SUBPIXEL_SHIFT;
            }
        }
コード例 #2
0
 public DistanceInterpolator0(int x1, int y1, int x2, int y2, int x, int y)
 {
     unchecked
     {
         _dx   = (LineAA.Mr(x2) - LineAA.Mr(x1));
         _dy   = (LineAA.Mr(y2) - LineAA.Mr(y1));
         _dist = ((LineAA.Mr(x + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(x2)) * _dy -
                  (LineAA.Mr(y + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(y2)) * _dx);
         _dx <<= LineAA.MR_SUBPIXEL_SHIFT;
         _dy <<= LineAA.MR_SUBPIXEL_SHIFT;
     }
 }
コード例 #3
0
 public DistanceInterpolator2(int x1, int y1, int x2, int y2,
                              int ex, int ey, int x, int y, int none)
 {
     _dx       = (x2 - x1);
     _dy       = (y2 - y1);
     _dx_start = (LineAA.Mr(ex) - LineAA.Mr(x2));
     _dy_start = (LineAA.Mr(ey) - LineAA.Mr(y2));
     _dist     = (AggMath.iround((double)(x + LineAA.SUBPIXEL_SCALE / 2 - x2) * (double)(_dy) -
                                 (double)(y + LineAA.SUBPIXEL_SCALE / 2 - y2) * (double)(_dx)));
     _dist_start = ((LineAA.Mr(x + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(ex)) * _dy_start -
                    (LineAA.Mr(y + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(ey)) * _dx_start);
     _dx       <<= LineAA.SUBPIXEL_SHIFT;
     _dy       <<= LineAA.SUBPIXEL_SHIFT;
     _dx_start <<= LineAA.MR_SUBPIXEL_SHIFT;
     _dy_start <<= LineAA.MR_SUBPIXEL_SHIFT;
 }
コード例 #4
0
        //---------------------------------------------------------------------

        public DistanceInterpolator2(int x1, int y1, int x2, int y2,
                                     int sx, int sy, int x, int y)
        {
            m_dx       = (x2 - x1);
            m_dy       = (y2 - y1);
            m_dx_start = (LineAA.Mr(sx) - LineAA.Mr(x1));
            m_dy_start = (LineAA.Mr(sy) - LineAA.Mr(y1));
            m_dist     = (AggBasics.iround((double)(x + LineAA.SUBPIXEL_SCALE / 2 - x2) * (double)(m_dy) -
                                           (double)(y + LineAA.SUBPIXEL_SCALE / 2 - y2) * (double)(m_dx)));
            m_dist_start = ((LineAA.Mr(x + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(sx)) * m_dy_start -
                            (LineAA.Mr(y + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(sy)) * m_dx_start);
            m_dx       <<= LineAA.SUBPIXEL_SHIFT;
            m_dy       <<= LineAA.SUBPIXEL_SHIFT;
            m_dx_start <<= LineAA.MR_SUBPIXEL_SHIFT;
            m_dy_start <<= LineAA.MR_SUBPIXEL_SHIFT;
        }
コード例 #5
0
 public DistanceInterpolator00(int xc, int yc,
                               int x1, int y1, int x2, int y2,
                               int x, int y)
 {
     _dx1   = (LineAA.Mr(x1) - LineAA.Mr(xc));
     _dy1   = (LineAA.Mr(y1) - LineAA.Mr(yc));
     _dx2   = (LineAA.Mr(x2) - LineAA.Mr(xc));
     _dy2   = (LineAA.Mr(y2) - LineAA.Mr(yc));
     _dist1 = ((LineAA.Mr(x + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(x1)) * _dy1 -
               (LineAA.Mr(y + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(y1)) * _dx1);
     _dist2 = ((LineAA.Mr(x + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(x2)) * _dy2 -
               (LineAA.Mr(y + LineAA.SUBPIXEL_SCALE / 2) - LineAA.Mr(y2)) * _dx2);
     _dx1 <<= LineAA.MR_SUBPIXEL_SHIFT;
     _dy1 <<= LineAA.MR_SUBPIXEL_SHIFT;
     _dx2 <<= LineAA.MR_SUBPIXEL_SHIFT;
     _dy2 <<= LineAA.MR_SUBPIXEL_SHIFT;
 }