OpenCV的画圆算法

最新由于工作需要需要在一个矩形图形中划实心圆圈,于是借鉴了一下OpenCV的代码,发现真的挺神奇的。

系统:Ubuntu 20.10

测试代码如下:

#include <opencv2/opencv.hpp>
#include <cstring>
#include <memory>

typedef struct POINT_I
{
    int x;
    int y;
} POINT;

typedef unsigned char uint8_t;

bool DrawFilledCirclefor1Channel(uint8_t *ptr, POINT center, int radius, uint8_t color)
{
    int size_width = 1280;
    int size_height = 720;
    int step = size_width;
    // uint8_t *ptr = new uint8_t[1280 * 720];
    std::memset(ptr, 0, 1280 * 720);
    int err = 0, dx = radius, dy = 0, plus = 1, minus = (radius << 1) - 1;

    std::cout << "err:" << err << std::endl;
    std::cout << "dx:" << dx << std::endl;
    std::cout << "dy:" << dy << std::endl;
    std::cout << "plus:" << plus << std::endl;
    std::cout << "minus:" << minus << std::endl;

    cv::Mat img = cv::Mat(720, 1280, CV_8UC1, ptr);
    cv::imshow("img", img);
    cv::waitKey(10);

#define DRAW_LINE(ptr, xl, xr, color)                   \
    {                                                   \
        uint8_t *line_ptr = (uint8_t *)(ptr) + xl;      \
        uint8_t *line_max_ptr = (uint8_t *)(ptr) + xr;  \
                                                        \
        for (; line_ptr <= line_max_ptr; line_ptr += 1) \
        {                                               \
            *line_ptr = color;                          \
        }                                               \
    }

    while (dx >= dy)
    {
        int mask;
        int y11 = center.y - dy, y12 = center.y + dy, y21 = center.y - dx, y22 = center.y + dx;
        int x11 = center.x - dx, x12 = center.x + dx, x21 = center.x - dy, x22 = center.x + dy;

        std::cout << "[x11,y11]:[" << x11 << "," << y11 << "]" << std::endl;
        std::cout << "[x12,y12]:[" << x12 << "," << y12 << "]" << std::endl;
        std::cout << "[x21,y21]:[" << x21 << "," << y21 << "]" << std::endl;
        std::cout << "[x22,y2]:[" << x22 << "," << y22 << "]" << std::endl;

        uint8_t *tptr0 = ptr + y11 * step;
        uint8_t *tptr1 = ptr + y12 * step;
        DRAW_LINE(tptr0, x11, x12, color);

        cv::imshow("img", img);
        cv::waitKey(10);

        DRAW_LINE(tptr1, x11, x12, color);

        cv::imshow("img", img);
        cv::waitKey(10);

        tptr0 = ptr + y21 * step;
        tptr1 = ptr + y22 * step;
        DRAW_LINE(tptr0, x21, x22, color);

        cv::imshow("img", img);
        cv::waitKey(10);

        DRAW_LINE(tptr1, x21, x22, color);

        cv::imshow("img", img);
        cv::waitKey(10);

        dy++;
        std::cout << "dy++; dy:" << dy << std::endl;
        err += plus;
        std::cout << "err += plus; err:" << err << std::endl;
        plus += 2;
        std::cout << "plus += 2; plus:" << plus << std::endl;

        mask = (err <= 0) - 1;
        std::cout << "mask = (err <= 0) - 1; mask:" << mask << std::endl;

        err -= minus & mask;
        std::cout << "err -= minus & mask; err:" << err << std::endl;
        dx += mask;
        std::cout << "dx += mask;; dx:" << dx << std::endl;
        minus -= mask & 2;
        std::cout << "minus -= mask & 2; minus:" << minus << std::endl;
    }

#undef DRAW_LINE

    return true;
}

int main(void)
{
    std::unique_ptr<uint8_t[]> up_rect_buffer(new uint8_t[1280 * 720]());
    POINT center = {640, 360};

    DrawFilledCirclefor1Channel(up_rect_buffer.get(), center, 350, 255);

    cv::Mat rect(720, 1280, CV_8UC1);
    cv::circle(rect, cv::Point(640, 360), 350, 255, -1);

    int ret = std::memcmp(up_rect_buffer.get(), rect.data, 1280 * 720);
    if (ret == 0)
    {
        std::cout << "equal" << std::endl;
    }
}

编译命令如下:

g++ -std=c++11 main.cpp -o test `pkg-config --cflags --libs opencv4`

视频演示实现过程如下:

OpenCV的画圆算法实现过程演示

视频原始链接点我

Log如下:

xiaxinkai@xiaxinkai:~/demo/opencv_circle$ ./test 
err:0
dx:350
dy:0
plus:1
minus:699
[x11,y11]:[290,360]
[x12,y12]:[990,360]
[x21,y21]:[640,10]
[x22,y2]:[640,710]
dy++; dy:1
err += plus; err:1
plus += 2; plus:3
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-698
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,359]
[x12,y12]:[989,361]
[x21,y21]:[639,11]
[x22,y2]:[641,709]
dy++; dy:2
err += plus; err:-695
plus += 2; plus:5
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-695
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,358]
[x12,y12]:[989,362]
[x21,y21]:[638,11]
[x22,y2]:[642,709]
dy++; dy:3
err += plus; err:-690
plus += 2; plus:7
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-690
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,357]
[x12,y12]:[989,363]
[x21,y21]:[637,11]
[x22,y2]:[643,709]
dy++; dy:4
err += plus; err:-683
plus += 2; plus:9
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-683
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,356]
[x12,y12]:[989,364]
[x21,y21]:[636,11]
[x22,y2]:[644,709]
dy++; dy:5
err += plus; err:-674
plus += 2; plus:11
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-674
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,355]
[x12,y12]:[989,365]
[x21,y21]:[635,11]
[x22,y2]:[645,709]
dy++; dy:6
err += plus; err:-663
plus += 2; plus:13
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-663
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,354]
[x12,y12]:[989,366]
[x21,y21]:[634,11]
[x22,y2]:[646,709]
dy++; dy:7
err += plus; err:-650
plus += 2; plus:15
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-650
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,353]
[x12,y12]:[989,367]
[x21,y21]:[633,11]
[x22,y2]:[647,709]
dy++; dy:8
err += plus; err:-635
plus += 2; plus:17
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-635
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,352]
[x12,y12]:[989,368]
[x21,y21]:[632,11]
[x22,y2]:[648,709]
dy++; dy:9
err += plus; err:-618
plus += 2; plus:19
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-618
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,351]
[x12,y12]:[989,369]
[x21,y21]:[631,11]
[x22,y2]:[649,709]
dy++; dy:10
err += plus; err:-599
plus += 2; plus:21
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-599
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,350]
[x12,y12]:[989,370]
[x21,y21]:[630,11]
[x22,y2]:[650,709]
dy++; dy:11
err += plus; err:-578
plus += 2; plus:23
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-578
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,349]
[x12,y12]:[989,371]
[x21,y21]:[629,11]
[x22,y2]:[651,709]
dy++; dy:12
err += plus; err:-555
plus += 2; plus:25
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-555
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,348]
[x12,y12]:[989,372]
[x21,y21]:[628,11]
[x22,y2]:[652,709]
dy++; dy:13
err += plus; err:-530
plus += 2; plus:27
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-530
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,347]
[x12,y12]:[989,373]
[x21,y21]:[627,11]
[x22,y2]:[653,709]
dy++; dy:14
err += plus; err:-503
plus += 2; plus:29
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-503
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,346]
[x12,y12]:[989,374]
[x21,y21]:[626,11]
[x22,y2]:[654,709]
dy++; dy:15
err += plus; err:-474
plus += 2; plus:31
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-474
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,345]
[x12,y12]:[989,375]
[x21,y21]:[625,11]
[x22,y2]:[655,709]
dy++; dy:16
err += plus; err:-443
plus += 2; plus:33
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-443
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,344]
[x12,y12]:[989,376]
[x21,y21]:[624,11]
[x22,y2]:[656,709]
dy++; dy:17
err += plus; err:-410
plus += 2; plus:35
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-410
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,343]
[x12,y12]:[989,377]
[x21,y21]:[623,11]
[x22,y2]:[657,709]
dy++; dy:18
err += plus; err:-375
plus += 2; plus:37
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-375
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,342]
[x12,y12]:[989,378]
[x21,y21]:[622,11]
[x22,y2]:[658,709]
dy++; dy:19
err += plus; err:-338
plus += 2; plus:39
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-338
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,341]
[x12,y12]:[989,379]
[x21,y21]:[621,11]
[x22,y2]:[659,709]
dy++; dy:20
err += plus; err:-299
plus += 2; plus:41
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-299
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,340]
[x12,y12]:[989,380]
[x21,y21]:[620,11]
[x22,y2]:[660,709]
dy++; dy:21
err += plus; err:-258
plus += 2; plus:43
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-258
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,339]
[x12,y12]:[989,381]
[x21,y21]:[619,11]
[x22,y2]:[661,709]
dy++; dy:22
err += plus; err:-215
plus += 2; plus:45
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-215
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,338]
[x12,y12]:[989,382]
[x21,y21]:[618,11]
[x22,y2]:[662,709]
dy++; dy:23
err += plus; err:-170
plus += 2; plus:47
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-170
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,337]
[x12,y12]:[989,383]
[x21,y21]:[617,11]
[x22,y2]:[663,709]
dy++; dy:24
err += plus; err:-123
plus += 2; plus:49
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-123
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,336]
[x12,y12]:[989,384]
[x21,y21]:[616,11]
[x22,y2]:[664,709]
dy++; dy:25
err += plus; err:-74
plus += 2; plus:51
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-74
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,335]
[x12,y12]:[989,385]
[x21,y21]:[615,11]
[x22,y2]:[665,709]
dy++; dy:26
err += plus; err:-23
plus += 2; plus:53
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-23
dx += mask;; dx:349
minus -= mask & 2; minus:697
[x11,y11]:[291,334]
[x12,y12]:[989,386]
[x21,y21]:[614,11]
[x22,y2]:[666,709]
dy++; dy:27
err += plus; err:30
plus += 2; plus:55
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-667
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,333]
[x12,y12]:[988,387]
[x21,y21]:[613,12]
[x22,y2]:[667,708]
dy++; dy:28
err += plus; err:-612
plus += 2; plus:57
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-612
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,332]
[x12,y12]:[988,388]
[x21,y21]:[612,12]
[x22,y2]:[668,708]
dy++; dy:29
err += plus; err:-555
plus += 2; plus:59
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-555
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,331]
[x12,y12]:[988,389]
[x21,y21]:[611,12]
[x22,y2]:[669,708]
dy++; dy:30
err += plus; err:-496
plus += 2; plus:61
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-496
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,330]
[x12,y12]:[988,390]
[x21,y21]:[610,12]
[x22,y2]:[670,708]
dy++; dy:31
err += plus; err:-435
plus += 2; plus:63
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-435
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,329]
[x12,y12]:[988,391]
[x21,y21]:[609,12]
[x22,y2]:[671,708]
dy++; dy:32
err += plus; err:-372
plus += 2; plus:65
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-372
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,328]
[x12,y12]:[988,392]
[x21,y21]:[608,12]
[x22,y2]:[672,708]
dy++; dy:33
err += plus; err:-307
plus += 2; plus:67
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-307
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,327]
[x12,y12]:[988,393]
[x21,y21]:[607,12]
[x22,y2]:[673,708]
dy++; dy:34
err += plus; err:-240
plus += 2; plus:69
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-240
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,326]
[x12,y12]:[988,394]
[x21,y21]:[606,12]
[x22,y2]:[674,708]
dy++; dy:35
err += plus; err:-171
plus += 2; plus:71
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-171
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,325]
[x12,y12]:[988,395]
[x21,y21]:[605,12]
[x22,y2]:[675,708]
dy++; dy:36
err += plus; err:-100
plus += 2; plus:73
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-100
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,324]
[x12,y12]:[988,396]
[x21,y21]:[604,12]
[x22,y2]:[676,708]
dy++; dy:37
err += plus; err:-27
plus += 2; plus:75
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-27
dx += mask;; dx:348
minus -= mask & 2; minus:695
[x11,y11]:[292,323]
[x12,y12]:[988,397]
[x21,y21]:[603,12]
[x22,y2]:[677,708]
dy++; dy:38
err += plus; err:48
plus += 2; plus:77
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-647
dx += mask;; dx:347
minus -= mask & 2; minus:693
[x11,y11]:[293,322]
[x12,y12]:[987,398]
[x21,y21]:[602,13]
[x22,y2]:[678,707]
dy++; dy:39
err += plus; err:-570
plus += 2; plus:79
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-570
dx += mask;; dx:347
minus -= mask & 2; minus:693
[x11,y11]:[293,321]
[x12,y12]:[987,399]
[x21,y21]:[601,13]
[x22,y2]:[679,707]
dy++; dy:40
err += plus; err:-491
plus += 2; plus:81
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-491
dx += mask;; dx:347
minus -= mask & 2; minus:693
[x11,y11]:[293,320]
[x12,y12]:[987,400]
[x21,y21]:[600,13]
[x22,y2]:[680,707]
dy++; dy:41
err += plus; err:-410
plus += 2; plus:83
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-410
dx += mask;; dx:347
minus -= mask & 2; minus:693
[x11,y11]:[293,319]
[x12,y12]:[987,401]
[x21,y21]:[599,13]
[x22,y2]:[681,707]
dy++; dy:42
err += plus; err:-327
plus += 2; plus:85
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-327
dx += mask;; dx:347
minus -= mask & 2; minus:693
[x11,y11]:[293,318]
[x12,y12]:[987,402]
[x21,y21]:[598,13]
[x22,y2]:[682,707]
dy++; dy:43
err += plus; err:-242
plus += 2; plus:87
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-242
dx += mask;; dx:347
minus -= mask & 2; minus:693
[x11,y11]:[293,317]
[x12,y12]:[987,403]
[x21,y21]:[597,13]
[x22,y2]:[683,707]
dy++; dy:44
err += plus; err:-155
plus += 2; plus:89
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-155
dx += mask;; dx:347
minus -= mask & 2; minus:693
[x11,y11]:[293,316]
[x12,y12]:[987,404]
[x21,y21]:[596,13]
[x22,y2]:[684,707]
dy++; dy:45
err += plus; err:-66
plus += 2; plus:91
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-66
dx += mask;; dx:347
minus -= mask & 2; minus:693
[x11,y11]:[293,315]
[x12,y12]:[987,405]
[x21,y21]:[595,13]
[x22,y2]:[685,707]
dy++; dy:46
err += plus; err:25
plus += 2; plus:93
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-668
dx += mask;; dx:346
minus -= mask & 2; minus:691
[x11,y11]:[294,314]
[x12,y12]:[986,406]
[x21,y21]:[594,14]
[x22,y2]:[686,706]
dy++; dy:47
err += plus; err:-575
plus += 2; plus:95
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-575
dx += mask;; dx:346
minus -= mask & 2; minus:691
[x11,y11]:[294,313]
[x12,y12]:[986,407]
[x21,y21]:[593,14]
[x22,y2]:[687,706]
dy++; dy:48
err += plus; err:-480
plus += 2; plus:97
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-480
dx += mask;; dx:346
minus -= mask & 2; minus:691
[x11,y11]:[294,312]
[x12,y12]:[986,408]
[x21,y21]:[592,14]
[x22,y2]:[688,706]
dy++; dy:49
err += plus; err:-383
plus += 2; plus:99
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-383
dx += mask;; dx:346
minus -= mask & 2; minus:691
[x11,y11]:[294,311]
[x12,y12]:[986,409]
[x21,y21]:[591,14]
[x22,y2]:[689,706]
dy++; dy:50
err += plus; err:-284
plus += 2; plus:101
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-284
dx += mask;; dx:346
minus -= mask & 2; minus:691
[x11,y11]:[294,310]
[x12,y12]:[986,410]
[x21,y21]:[590,14]
[x22,y2]:[690,706]
dy++; dy:51
err += plus; err:-183
plus += 2; plus:103
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-183
dx += mask;; dx:346
minus -= mask & 2; minus:691
[x11,y11]:[294,309]
[x12,y12]:[986,411]
[x21,y21]:[589,14]
[x22,y2]:[691,706]
dy++; dy:52
err += plus; err:-80
plus += 2; plus:105
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-80
dx += mask;; dx:346
minus -= mask & 2; minus:691
[x11,y11]:[294,308]
[x12,y12]:[986,412]
[x21,y21]:[588,14]
[x22,y2]:[692,706]
dy++; dy:53
err += plus; err:25
plus += 2; plus:107
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-666
dx += mask;; dx:345
minus -= mask & 2; minus:689
[x11,y11]:[295,307]
[x12,y12]:[985,413]
[x21,y21]:[587,15]
[x22,y2]:[693,705]
dy++; dy:54
err += plus; err:-559
plus += 2; plus:109
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-559
dx += mask;; dx:345
minus -= mask & 2; minus:689
[x11,y11]:[295,306]
[x12,y12]:[985,414]
[x21,y21]:[586,15]
[x22,y2]:[694,705]
dy++; dy:55
err += plus; err:-450
plus += 2; plus:111
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-450
dx += mask;; dx:345
minus -= mask & 2; minus:689
[x11,y11]:[295,305]
[x12,y12]:[985,415]
[x21,y21]:[585,15]
[x22,y2]:[695,705]
dy++; dy:56
err += plus; err:-339
plus += 2; plus:113
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-339
dx += mask;; dx:345
minus -= mask & 2; minus:689
[x11,y11]:[295,304]
[x12,y12]:[985,416]
[x21,y21]:[584,15]
[x22,y2]:[696,705]
dy++; dy:57
err += plus; err:-226
plus += 2; plus:115
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-226
dx += mask;; dx:345
minus -= mask & 2; minus:689
[x11,y11]:[295,303]
[x12,y12]:[985,417]
[x21,y21]:[583,15]
[x22,y2]:[697,705]
dy++; dy:58
err += plus; err:-111
plus += 2; plus:117
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-111
dx += mask;; dx:345
minus -= mask & 2; minus:689
[x11,y11]:[295,302]
[x12,y12]:[985,418]
[x21,y21]:[582,15]
[x22,y2]:[698,705]
dy++; dy:59
err += plus; err:6
plus += 2; plus:119
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-683
dx += mask;; dx:344
minus -= mask & 2; minus:687
[x11,y11]:[296,301]
[x12,y12]:[984,419]
[x21,y21]:[581,16]
[x22,y2]:[699,704]
dy++; dy:60
err += plus; err:-564
plus += 2; plus:121
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-564
dx += mask;; dx:344
minus -= mask & 2; minus:687
[x11,y11]:[296,300]
[x12,y12]:[984,420]
[x21,y21]:[580,16]
[x22,y2]:[700,704]
dy++; dy:61
err += plus; err:-443
plus += 2; plus:123
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-443
dx += mask;; dx:344
minus -= mask & 2; minus:687
[x11,y11]:[296,299]
[x12,y12]:[984,421]
[x21,y21]:[579,16]
[x22,y2]:[701,704]
dy++; dy:62
err += plus; err:-320
plus += 2; plus:125
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-320
dx += mask;; dx:344
minus -= mask & 2; minus:687
[x11,y11]:[296,298]
[x12,y12]:[984,422]
[x21,y21]:[578,16]
[x22,y2]:[702,704]
dy++; dy:63
err += plus; err:-195
plus += 2; plus:127
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-195
dx += mask;; dx:344
minus -= mask & 2; minus:687
[x11,y11]:[296,297]
[x12,y12]:[984,423]
[x21,y21]:[577,16]
[x22,y2]:[703,704]
dy++; dy:64
err += plus; err:-68
plus += 2; plus:129
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-68
dx += mask;; dx:344
minus -= mask & 2; minus:687
[x11,y11]:[296,296]
[x12,y12]:[984,424]
[x21,y21]:[576,16]
[x22,y2]:[704,704]
dy++; dy:65
err += plus; err:61
plus += 2; plus:131
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-626
dx += mask;; dx:343
minus -= mask & 2; minus:685
[x11,y11]:[297,295]
[x12,y12]:[983,425]
[x21,y21]:[575,17]
[x22,y2]:[705,703]
dy++; dy:66
err += plus; err:-495
plus += 2; plus:133
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-495
dx += mask;; dx:343
minus -= mask & 2; minus:685
[x11,y11]:[297,294]
[x12,y12]:[983,426]
[x21,y21]:[574,17]
[x22,y2]:[706,703]
dy++; dy:67
err += plus; err:-362
plus += 2; plus:135
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-362
dx += mask;; dx:343
minus -= mask & 2; minus:685
[x11,y11]:[297,293]
[x12,y12]:[983,427]
[x21,y21]:[573,17]
[x22,y2]:[707,703]
dy++; dy:68
err += plus; err:-227
plus += 2; plus:137
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-227
dx += mask;; dx:343
minus -= mask & 2; minus:685
[x11,y11]:[297,292]
[x12,y12]:[983,428]
[x21,y21]:[572,17]
[x22,y2]:[708,703]
dy++; dy:69
err += plus; err:-90
plus += 2; plus:139
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-90
dx += mask;; dx:343
minus -= mask & 2; minus:685
[x11,y11]:[297,291]
[x12,y12]:[983,429]
[x21,y21]:[571,17]
[x22,y2]:[709,703]
dy++; dy:70
err += plus; err:49
plus += 2; plus:141
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-636
dx += mask;; dx:342
minus -= mask & 2; minus:683
[x11,y11]:[298,290]
[x12,y12]:[982,430]
[x21,y21]:[570,18]
[x22,y2]:[710,702]
dy++; dy:71
err += plus; err:-495
plus += 2; plus:143
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-495
dx += mask;; dx:342
minus -= mask & 2; minus:683
[x11,y11]:[298,289]
[x12,y12]:[982,431]
[x21,y21]:[569,18]
[x22,y2]:[711,702]
dy++; dy:72
err += plus; err:-352
plus += 2; plus:145
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-352
dx += mask;; dx:342
minus -= mask & 2; minus:683
[x11,y11]:[298,288]
[x12,y12]:[982,432]
[x21,y21]:[568,18]
[x22,y2]:[712,702]
dy++; dy:73
err += plus; err:-207
plus += 2; plus:147
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-207
dx += mask;; dx:342
minus -= mask & 2; minus:683
[x11,y11]:[298,287]
[x12,y12]:[982,433]
[x21,y21]:[567,18]
[x22,y2]:[713,702]
dy++; dy:74
err += plus; err:-60
plus += 2; plus:149
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-60
dx += mask;; dx:342
minus -= mask & 2; minus:683
[x11,y11]:[298,286]
[x12,y12]:[982,434]
[x21,y21]:[566,18]
[x22,y2]:[714,702]
dy++; dy:75
err += plus; err:89
plus += 2; plus:151
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-594
dx += mask;; dx:341
minus -= mask & 2; minus:681
[x11,y11]:[299,285]
[x12,y12]:[981,435]
[x21,y21]:[565,19]
[x22,y2]:[715,701]
dy++; dy:76
err += plus; err:-443
plus += 2; plus:153
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-443
dx += mask;; dx:341
minus -= mask & 2; minus:681
[x11,y11]:[299,284]
[x12,y12]:[981,436]
[x21,y21]:[564,19]
[x22,y2]:[716,701]
dy++; dy:77
err += plus; err:-290
plus += 2; plus:155
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-290
dx += mask;; dx:341
minus -= mask & 2; minus:681
[x11,y11]:[299,283]
[x12,y12]:[981,437]
[x21,y21]:[563,19]
[x22,y2]:[717,701]
dy++; dy:78
err += plus; err:-135
plus += 2; plus:157
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-135
dx += mask;; dx:341
minus -= mask & 2; minus:681
[x11,y11]:[299,282]
[x12,y12]:[981,438]
[x21,y21]:[562,19]
[x22,y2]:[718,701]
dy++; dy:79
err += plus; err:22
plus += 2; plus:159
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-659
dx += mask;; dx:340
minus -= mask & 2; minus:679
[x11,y11]:[300,281]
[x12,y12]:[980,439]
[x21,y21]:[561,20]
[x22,y2]:[719,700]
dy++; dy:80
err += plus; err:-500
plus += 2; plus:161
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-500
dx += mask;; dx:340
minus -= mask & 2; minus:679
[x11,y11]:[300,280]
[x12,y12]:[980,440]
[x21,y21]:[560,20]
[x22,y2]:[720,700]
dy++; dy:81
err += plus; err:-339
plus += 2; plus:163
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-339
dx += mask;; dx:340
minus -= mask & 2; minus:679
[x11,y11]:[300,279]
[x12,y12]:[980,441]
[x21,y21]:[559,20]
[x22,y2]:[721,700]
dy++; dy:82
err += plus; err:-176
plus += 2; plus:165
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-176
dx += mask;; dx:340
minus -= mask & 2; minus:679
[x11,y11]:[300,278]
[x12,y12]:[980,442]
[x21,y21]:[558,20]
[x22,y2]:[722,700]
dy++; dy:83
err += plus; err:-11
plus += 2; plus:167
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-11
dx += mask;; dx:340
minus -= mask & 2; minus:679
[x11,y11]:[300,277]
[x12,y12]:[980,443]
[x21,y21]:[557,20]
[x22,y2]:[723,700]
dy++; dy:84
err += plus; err:156
plus += 2; plus:169
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-523
dx += mask;; dx:339
minus -= mask & 2; minus:677
[x11,y11]:[301,276]
[x12,y12]:[979,444]
[x21,y21]:[556,21]
[x22,y2]:[724,699]
dy++; dy:85
err += plus; err:-354
plus += 2; plus:171
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-354
dx += mask;; dx:339
minus -= mask & 2; minus:677
[x11,y11]:[301,275]
[x12,y12]:[979,445]
[x21,y21]:[555,21]
[x22,y2]:[725,699]
dy++; dy:86
err += plus; err:-183
plus += 2; plus:173
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-183
dx += mask;; dx:339
minus -= mask & 2; minus:677
[x11,y11]:[301,274]
[x12,y12]:[979,446]
[x21,y21]:[554,21]
[x22,y2]:[726,699]
dy++; dy:87
err += plus; err:-10
plus += 2; plus:175
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-10
dx += mask;; dx:339
minus -= mask & 2; minus:677
[x11,y11]:[301,273]
[x12,y12]:[979,447]
[x21,y21]:[553,21]
[x22,y2]:[727,699]
dy++; dy:88
err += plus; err:165
plus += 2; plus:177
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-512
dx += mask;; dx:338
minus -= mask & 2; minus:675
[x11,y11]:[302,272]
[x12,y12]:[978,448]
[x21,y21]:[552,22]
[x22,y2]:[728,698]
dy++; dy:89
err += plus; err:-335
plus += 2; plus:179
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-335
dx += mask;; dx:338
minus -= mask & 2; minus:675
[x11,y11]:[302,271]
[x12,y12]:[978,449]
[x21,y21]:[551,22]
[x22,y2]:[729,698]
dy++; dy:90
err += plus; err:-156
plus += 2; plus:181
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-156
dx += mask;; dx:338
minus -= mask & 2; minus:675
[x11,y11]:[302,270]
[x12,y12]:[978,450]
[x21,y21]:[550,22]
[x22,y2]:[730,698]
dy++; dy:91
err += plus; err:25
plus += 2; plus:183
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-650
dx += mask;; dx:337
minus -= mask & 2; minus:673
[x11,y11]:[303,269]
[x12,y12]:[977,451]
[x21,y21]:[549,23]
[x22,y2]:[731,697]
dy++; dy:92
err += plus; err:-467
plus += 2; plus:185
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-467
dx += mask;; dx:337
minus -= mask & 2; minus:673
[x11,y11]:[303,268]
[x12,y12]:[977,452]
[x21,y21]:[548,23]
[x22,y2]:[732,697]
dy++; dy:93
err += plus; err:-282
plus += 2; plus:187
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-282
dx += mask;; dx:337
minus -= mask & 2; minus:673
[x11,y11]:[303,267]
[x12,y12]:[977,453]
[x21,y21]:[547,23]
[x22,y2]:[733,697]
dy++; dy:94
err += plus; err:-95
plus += 2; plus:189
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-95
dx += mask;; dx:337
minus -= mask & 2; minus:673
[x11,y11]:[303,266]
[x12,y12]:[977,454]
[x21,y21]:[546,23]
[x22,y2]:[734,697]
dy++; dy:95
err += plus; err:94
plus += 2; plus:191
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-579
dx += mask;; dx:336
minus -= mask & 2; minus:671
[x11,y11]:[304,265]
[x12,y12]:[976,455]
[x21,y21]:[545,24]
[x22,y2]:[735,696]
dy++; dy:96
err += plus; err:-388
plus += 2; plus:193
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-388
dx += mask;; dx:336
minus -= mask & 2; minus:671
[x11,y11]:[304,264]
[x12,y12]:[976,456]
[x21,y21]:[544,24]
[x22,y2]:[736,696]
dy++; dy:97
err += plus; err:-195
plus += 2; plus:195
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-195
dx += mask;; dx:336
minus -= mask & 2; minus:671
[x11,y11]:[304,263]
[x12,y12]:[976,457]
[x21,y21]:[543,24]
[x22,y2]:[737,696]
dy++; dy:98
err += plus; err:0
plus += 2; plus:197
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:0
dx += mask;; dx:336
minus -= mask & 2; minus:671
[x11,y11]:[304,262]
[x12,y12]:[976,458]
[x21,y21]:[542,24]
[x22,y2]:[738,696]
dy++; dy:99
err += plus; err:197
plus += 2; plus:199
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-474
dx += mask;; dx:335
minus -= mask & 2; minus:669
[x11,y11]:[305,261]
[x12,y12]:[975,459]
[x21,y21]:[541,25]
[x22,y2]:[739,695]
dy++; dy:100
err += plus; err:-275
plus += 2; plus:201
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-275
dx += mask;; dx:335
minus -= mask & 2; minus:669
[x11,y11]:[305,260]
[x12,y12]:[975,460]
[x21,y21]:[540,25]
[x22,y2]:[740,695]
dy++; dy:101
err += plus; err:-74
plus += 2; plus:203
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-74
dx += mask;; dx:335
minus -= mask & 2; minus:669
[x11,y11]:[305,259]
[x12,y12]:[975,461]
[x21,y21]:[539,25]
[x22,y2]:[741,695]
dy++; dy:102
err += plus; err:129
plus += 2; plus:205
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-540
dx += mask;; dx:334
minus -= mask & 2; minus:667
[x11,y11]:[306,258]
[x12,y12]:[974,462]
[x21,y21]:[538,26]
[x22,y2]:[742,694]
dy++; dy:103
err += plus; err:-335
plus += 2; plus:207
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-335
dx += mask;; dx:334
minus -= mask & 2; minus:667
[x11,y11]:[306,257]
[x12,y12]:[974,463]
[x21,y21]:[537,26]
[x22,y2]:[743,694]
dy++; dy:104
err += plus; err:-128
plus += 2; plus:209
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-128
dx += mask;; dx:334
minus -= mask & 2; minus:667
[x11,y11]:[306,256]
[x12,y12]:[974,464]
[x21,y21]:[536,26]
[x22,y2]:[744,694]
dy++; dy:105
err += plus; err:81
plus += 2; plus:211
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-586
dx += mask;; dx:333
minus -= mask & 2; minus:665
[x11,y11]:[307,255]
[x12,y12]:[973,465]
[x21,y21]:[535,27]
[x22,y2]:[745,693]
dy++; dy:106
err += plus; err:-375
plus += 2; plus:213
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-375
dx += mask;; dx:333
minus -= mask & 2; minus:665
[x11,y11]:[307,254]
[x12,y12]:[973,466]
[x21,y21]:[534,27]
[x22,y2]:[746,693]
dy++; dy:107
err += plus; err:-162
plus += 2; plus:215
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-162
dx += mask;; dx:333
minus -= mask & 2; minus:665
[x11,y11]:[307,253]
[x12,y12]:[973,467]
[x21,y21]:[533,27]
[x22,y2]:[747,693]
dy++; dy:108
err += plus; err:53
plus += 2; plus:217
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-612
dx += mask;; dx:332
minus -= mask & 2; minus:663
[x11,y11]:[308,252]
[x12,y12]:[972,468]
[x21,y21]:[532,28]
[x22,y2]:[748,692]
dy++; dy:109
err += plus; err:-395
plus += 2; plus:219
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-395
dx += mask;; dx:332
minus -= mask & 2; minus:663
[x11,y11]:[308,251]
[x12,y12]:[972,469]
[x21,y21]:[531,28]
[x22,y2]:[749,692]
dy++; dy:110
err += plus; err:-176
plus += 2; plus:221
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-176
dx += mask;; dx:332
minus -= mask & 2; minus:663
[x11,y11]:[308,250]
[x12,y12]:[972,470]
[x21,y21]:[530,28]
[x22,y2]:[750,692]
dy++; dy:111
err += plus; err:45
plus += 2; plus:223
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-618
dx += mask;; dx:331
minus -= mask & 2; minus:661
[x11,y11]:[309,249]
[x12,y12]:[971,471]
[x21,y21]:[529,29]
[x22,y2]:[751,691]
dy++; dy:112
err += plus; err:-395
plus += 2; plus:225
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-395
dx += mask;; dx:331
minus -= mask & 2; minus:661
[x11,y11]:[309,248]
[x12,y12]:[971,472]
[x21,y21]:[528,29]
[x22,y2]:[752,691]
dy++; dy:113
err += plus; err:-170
plus += 2; plus:227
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-170
dx += mask;; dx:331
minus -= mask & 2; minus:661
[x11,y11]:[309,247]
[x12,y12]:[971,473]
[x21,y21]:[527,29]
[x22,y2]:[753,691]
dy++; dy:114
err += plus; err:57
plus += 2; plus:229
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-604
dx += mask;; dx:330
minus -= mask & 2; minus:659
[x11,y11]:[310,246]
[x12,y12]:[970,474]
[x21,y21]:[526,30]
[x22,y2]:[754,690]
dy++; dy:115
err += plus; err:-375
plus += 2; plus:231
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-375
dx += mask;; dx:330
minus -= mask & 2; minus:659
[x11,y11]:[310,245]
[x12,y12]:[970,475]
[x21,y21]:[525,30]
[x22,y2]:[755,690]
dy++; dy:116
err += plus; err:-144
plus += 2; plus:233
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-144
dx += mask;; dx:330
minus -= mask & 2; minus:659
[x11,y11]:[310,244]
[x12,y12]:[970,476]
[x21,y21]:[524,30]
[x22,y2]:[756,690]
dy++; dy:117
err += plus; err:89
plus += 2; plus:235
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-570
dx += mask;; dx:329
minus -= mask & 2; minus:657
[x11,y11]:[311,243]
[x12,y12]:[969,477]
[x21,y21]:[523,31]
[x22,y2]:[757,689]
dy++; dy:118
err += plus; err:-335
plus += 2; plus:237
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-335
dx += mask;; dx:329
minus -= mask & 2; minus:657
[x11,y11]:[311,242]
[x12,y12]:[969,478]
[x21,y21]:[522,31]
[x22,y2]:[758,689]
dy++; dy:119
err += plus; err:-98
plus += 2; plus:239
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-98
dx += mask;; dx:329
minus -= mask & 2; minus:657
[x11,y11]:[311,241]
[x12,y12]:[969,479]
[x21,y21]:[521,31]
[x22,y2]:[759,689]
dy++; dy:120
err += plus; err:141
plus += 2; plus:241
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-516
dx += mask;; dx:328
minus -= mask & 2; minus:655
[x11,y11]:[312,240]
[x12,y12]:[968,480]
[x21,y21]:[520,32]
[x22,y2]:[760,688]
dy++; dy:121
err += plus; err:-275
plus += 2; plus:243
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-275
dx += mask;; dx:328
minus -= mask & 2; minus:655
[x11,y11]:[312,239]
[x12,y12]:[968,481]
[x21,y21]:[519,32]
[x22,y2]:[761,688]
dy++; dy:122
err += plus; err:-32
plus += 2; plus:245
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-32
dx += mask;; dx:328
minus -= mask & 2; minus:655
[x11,y11]:[312,238]
[x12,y12]:[968,482]
[x21,y21]:[518,32]
[x22,y2]:[762,688]
dy++; dy:123
err += plus; err:213
plus += 2; plus:247
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-442
dx += mask;; dx:327
minus -= mask & 2; minus:653
[x11,y11]:[313,237]
[x12,y12]:[967,483]
[x21,y21]:[517,33]
[x22,y2]:[763,687]
dy++; dy:124
err += plus; err:-195
plus += 2; plus:249
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-195
dx += mask;; dx:327
minus -= mask & 2; minus:653
[x11,y11]:[313,236]
[x12,y12]:[967,484]
[x21,y21]:[516,33]
[x22,y2]:[764,687]
dy++; dy:125
err += plus; err:54
plus += 2; plus:251
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-599
dx += mask;; dx:326
minus -= mask & 2; minus:651
[x11,y11]:[314,235]
[x12,y12]:[966,485]
[x21,y21]:[515,34]
[x22,y2]:[765,686]
dy++; dy:126
err += plus; err:-348
plus += 2; plus:253
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-348
dx += mask;; dx:326
minus -= mask & 2; minus:651
[x11,y11]:[314,234]
[x12,y12]:[966,486]
[x21,y21]:[514,34]
[x22,y2]:[766,686]
dy++; dy:127
err += plus; err:-95
plus += 2; plus:255
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-95
dx += mask;; dx:326
minus -= mask & 2; minus:651
[x11,y11]:[314,233]
[x12,y12]:[966,487]
[x21,y21]:[513,34]
[x22,y2]:[767,686]
dy++; dy:128
err += plus; err:160
plus += 2; plus:257
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-491
dx += mask;; dx:325
minus -= mask & 2; minus:649
[x11,y11]:[315,232]
[x12,y12]:[965,488]
[x21,y21]:[512,35]
[x22,y2]:[768,685]
dy++; dy:129
err += plus; err:-234
plus += 2; plus:259
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-234
dx += mask;; dx:325
minus -= mask & 2; minus:649
[x11,y11]:[315,231]
[x12,y12]:[965,489]
[x21,y21]:[511,35]
[x22,y2]:[769,685]
dy++; dy:130
err += plus; err:25
plus += 2; plus:261
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-624
dx += mask;; dx:324
minus -= mask & 2; minus:647
[x11,y11]:[316,230]
[x12,y12]:[964,490]
[x21,y21]:[510,36]
[x22,y2]:[770,684]
dy++; dy:131
err += plus; err:-363
plus += 2; plus:263
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-363
dx += mask;; dx:324
minus -= mask & 2; minus:647
[x11,y11]:[316,229]
[x12,y12]:[964,491]
[x21,y21]:[509,36]
[x22,y2]:[771,684]
dy++; dy:132
err += plus; err:-100
plus += 2; plus:265
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-100
dx += mask;; dx:324
minus -= mask & 2; minus:647
[x11,y11]:[316,228]
[x12,y12]:[964,492]
[x21,y21]:[508,36]
[x22,y2]:[772,684]
dy++; dy:133
err += plus; err:165
plus += 2; plus:267
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-482
dx += mask;; dx:323
minus -= mask & 2; minus:645
[x11,y11]:[317,227]
[x12,y12]:[963,493]
[x21,y21]:[507,37]
[x22,y2]:[773,683]
dy++; dy:134
err += plus; err:-215
plus += 2; plus:269
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-215
dx += mask;; dx:323
minus -= mask & 2; minus:645
[x11,y11]:[317,226]
[x12,y12]:[963,494]
[x21,y21]:[506,37]
[x22,y2]:[774,683]
dy++; dy:135
err += plus; err:54
plus += 2; plus:271
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-591
dx += mask;; dx:322
minus -= mask & 2; minus:643
[x11,y11]:[318,225]
[x12,y12]:[962,495]
[x21,y21]:[505,38]
[x22,y2]:[775,682]
dy++; dy:136
err += plus; err:-320
plus += 2; plus:273
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-320
dx += mask;; dx:322
minus -= mask & 2; minus:643
[x11,y11]:[318,224]
[x12,y12]:[962,496]
[x21,y21]:[504,38]
[x22,y2]:[776,682]
dy++; dy:137
err += plus; err:-47
plus += 2; plus:275
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-47
dx += mask;; dx:322
minus -= mask & 2; minus:643
[x11,y11]:[318,223]
[x12,y12]:[962,497]
[x21,y21]:[503,38]
[x22,y2]:[777,682]
dy++; dy:138
err += plus; err:228
plus += 2; plus:277
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-415
dx += mask;; dx:321
minus -= mask & 2; minus:641
[x11,y11]:[319,222]
[x12,y12]:[961,498]
[x21,y21]:[502,39]
[x22,y2]:[778,681]
dy++; dy:139
err += plus; err:-138
plus += 2; plus:279
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-138
dx += mask;; dx:321
minus -= mask & 2; minus:641
[x11,y11]:[319,221]
[x12,y12]:[961,499]
[x21,y21]:[501,39]
[x22,y2]:[779,681]
dy++; dy:140
err += plus; err:141
plus += 2; plus:281
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-500
dx += mask;; dx:320
minus -= mask & 2; minus:639
[x11,y11]:[320,220]
[x12,y12]:[960,500]
[x21,y21]:[500,40]
[x22,y2]:[780,680]
dy++; dy:141
err += plus; err:-219
plus += 2; plus:283
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-219
dx += mask;; dx:320
minus -= mask & 2; minus:639
[x11,y11]:[320,219]
[x12,y12]:[960,501]
[x21,y21]:[499,40]
[x22,y2]:[781,680]
dy++; dy:142
err += plus; err:64
plus += 2; plus:285
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-575
dx += mask;; dx:319
minus -= mask & 2; minus:637
[x11,y11]:[321,218]
[x12,y12]:[959,502]
[x21,y21]:[498,41]
[x22,y2]:[782,679]
dy++; dy:143
err += plus; err:-290
plus += 2; plus:287
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-290
dx += mask;; dx:319
minus -= mask & 2; minus:637
[x11,y11]:[321,217]
[x12,y12]:[959,503]
[x21,y21]:[497,41]
[x22,y2]:[783,679]
dy++; dy:144
err += plus; err:-3
plus += 2; plus:289
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-3
dx += mask;; dx:319
minus -= mask & 2; minus:637
[x11,y11]:[321,216]
[x12,y12]:[959,504]
[x21,y21]:[496,41]
[x22,y2]:[784,679]
dy++; dy:145
err += plus; err:286
plus += 2; plus:291
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-351
dx += mask;; dx:318
minus -= mask & 2; minus:635
[x11,y11]:[322,215]
[x12,y12]:[958,505]
[x21,y21]:[495,42]
[x22,y2]:[785,678]
dy++; dy:146
err += plus; err:-60
plus += 2; plus:293
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-60
dx += mask;; dx:318
minus -= mask & 2; minus:635
[x11,y11]:[322,214]
[x12,y12]:[958,506]
[x21,y21]:[494,42]
[x22,y2]:[786,678]
dy++; dy:147
err += plus; err:233
plus += 2; plus:295
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-402
dx += mask;; dx:317
minus -= mask & 2; minus:633
[x11,y11]:[323,213]
[x12,y12]:[957,507]
[x21,y21]:[493,43]
[x22,y2]:[787,677]
dy++; dy:148
err += plus; err:-107
plus += 2; plus:297
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-107
dx += mask;; dx:317
minus -= mask & 2; minus:633
[x11,y11]:[323,212]
[x12,y12]:[957,508]
[x21,y21]:[492,43]
[x22,y2]:[788,677]
dy++; dy:149
err += plus; err:190
plus += 2; plus:299
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-443
dx += mask;; dx:316
minus -= mask & 2; minus:631
[x11,y11]:[324,211]
[x12,y12]:[956,509]
[x21,y21]:[491,44]
[x22,y2]:[789,676]
dy++; dy:150
err += plus; err:-144
plus += 2; plus:301
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-144
dx += mask;; dx:316
minus -= mask & 2; minus:631
[x11,y11]:[324,210]
[x12,y12]:[956,510]
[x21,y21]:[490,44]
[x22,y2]:[790,676]
dy++; dy:151
err += plus; err:157
plus += 2; plus:303
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-474
dx += mask;; dx:315
minus -= mask & 2; minus:629
[x11,y11]:[325,209]
[x12,y12]:[955,511]
[x21,y21]:[489,45]
[x22,y2]:[791,675]
dy++; dy:152
err += plus; err:-171
plus += 2; plus:305
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-171
dx += mask;; dx:315
minus -= mask & 2; minus:629
[x11,y11]:[325,208]
[x12,y12]:[955,512]
[x21,y21]:[488,45]
[x22,y2]:[792,675]
dy++; dy:153
err += plus; err:134
plus += 2; plus:307
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-495
dx += mask;; dx:314
minus -= mask & 2; minus:627
[x11,y11]:[326,207]
[x12,y12]:[954,513]
[x21,y21]:[487,46]
[x22,y2]:[793,674]
dy++; dy:154
err += plus; err:-188
plus += 2; plus:309
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-188
dx += mask;; dx:314
minus -= mask & 2; minus:627
[x11,y11]:[326,206]
[x12,y12]:[954,514]
[x21,y21]:[486,46]
[x22,y2]:[794,674]
dy++; dy:155
err += plus; err:121
plus += 2; plus:311
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-506
dx += mask;; dx:313
minus -= mask & 2; minus:625
[x11,y11]:[327,205]
[x12,y12]:[953,515]
[x21,y21]:[485,47]
[x22,y2]:[795,673]
dy++; dy:156
err += plus; err:-195
plus += 2; plus:313
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-195
dx += mask;; dx:313
minus -= mask & 2; minus:625
[x11,y11]:[327,204]
[x12,y12]:[953,516]
[x21,y21]:[484,47]
[x22,y2]:[796,673]
dy++; dy:157
err += plus; err:118
plus += 2; plus:315
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-507
dx += mask;; dx:312
minus -= mask & 2; minus:623
[x11,y11]:[328,203]
[x12,y12]:[952,517]
[x21,y21]:[483,48]
[x22,y2]:[797,672]
dy++; dy:158
err += plus; err:-192
plus += 2; plus:317
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-192
dx += mask;; dx:312
minus -= mask & 2; minus:623
[x11,y11]:[328,202]
[x12,y12]:[952,518]
[x21,y21]:[482,48]
[x22,y2]:[798,672]
dy++; dy:159
err += plus; err:125
plus += 2; plus:319
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-498
dx += mask;; dx:311
minus -= mask & 2; minus:621
[x11,y11]:[329,201]
[x12,y12]:[951,519]
[x21,y21]:[481,49]
[x22,y2]:[799,671]
dy++; dy:160
err += plus; err:-179
plus += 2; plus:321
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-179
dx += mask;; dx:311
minus -= mask & 2; minus:621
[x11,y11]:[329,200]
[x12,y12]:[951,520]
[x21,y21]:[480,49]
[x22,y2]:[800,671]
dy++; dy:161
err += plus; err:142
plus += 2; plus:323
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-479
dx += mask;; dx:310
minus -= mask & 2; minus:619
[x11,y11]:[330,199]
[x12,y12]:[950,521]
[x21,y21]:[479,50]
[x22,y2]:[801,670]
dy++; dy:162
err += plus; err:-156
plus += 2; plus:325
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-156
dx += mask;; dx:310
minus -= mask & 2; minus:619
[x11,y11]:[330,198]
[x12,y12]:[950,522]
[x21,y21]:[478,50]
[x22,y2]:[802,670]
dy++; dy:163
err += plus; err:169
plus += 2; plus:327
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-450
dx += mask;; dx:309
minus -= mask & 2; minus:617
[x11,y11]:[331,197]
[x12,y12]:[949,523]
[x21,y21]:[477,51]
[x22,y2]:[803,669]
dy++; dy:164
err += plus; err:-123
plus += 2; plus:329
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-123
dx += mask;; dx:309
minus -= mask & 2; minus:617
[x11,y11]:[331,196]
[x12,y12]:[949,524]
[x21,y21]:[476,51]
[x22,y2]:[804,669]
dy++; dy:165
err += plus; err:206
plus += 2; plus:331
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-411
dx += mask;; dx:308
minus -= mask & 2; minus:615
[x11,y11]:[332,195]
[x12,y12]:[948,525]
[x21,y21]:[475,52]
[x22,y2]:[805,668]
dy++; dy:166
err += plus; err:-80
plus += 2; plus:333
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-80
dx += mask;; dx:308
minus -= mask & 2; minus:615
[x11,y11]:[332,194]
[x12,y12]:[948,526]
[x21,y21]:[474,52]
[x22,y2]:[806,668]
dy++; dy:167
err += plus; err:253
plus += 2; plus:335
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-362
dx += mask;; dx:307
minus -= mask & 2; minus:613
[x11,y11]:[333,193]
[x12,y12]:[947,527]
[x21,y21]:[473,53]
[x22,y2]:[807,667]
dy++; dy:168
err += plus; err:-27
plus += 2; plus:337
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-27
dx += mask;; dx:307
minus -= mask & 2; minus:613
[x11,y11]:[333,192]
[x12,y12]:[947,528]
[x21,y21]:[472,53]
[x22,y2]:[808,667]
dy++; dy:169
err += plus; err:310
plus += 2; plus:339
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-303
dx += mask;; dx:306
minus -= mask & 2; minus:611
[x11,y11]:[334,191]
[x12,y12]:[946,529]
[x21,y21]:[471,54]
[x22,y2]:[809,666]
dy++; dy:170
err += plus; err:36
plus += 2; plus:341
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-575
dx += mask;; dx:305
minus -= mask & 2; minus:609
[x11,y11]:[335,190]
[x12,y12]:[945,530]
[x21,y21]:[470,55]
[x22,y2]:[810,665]
dy++; dy:171
err += plus; err:-234
plus += 2; plus:343
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-234
dx += mask;; dx:305
minus -= mask & 2; minus:609
[x11,y11]:[335,189]
[x12,y12]:[945,531]
[x21,y21]:[469,55]
[x22,y2]:[811,665]
dy++; dy:172
err += plus; err:109
plus += 2; plus:345
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-500
dx += mask;; dx:304
minus -= mask & 2; minus:607
[x11,y11]:[336,188]
[x12,y12]:[944,532]
[x21,y21]:[468,56]
[x22,y2]:[812,664]
dy++; dy:173
err += plus; err:-155
plus += 2; plus:347
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-155
dx += mask;; dx:304
minus -= mask & 2; minus:607
[x11,y11]:[336,187]
[x12,y12]:[944,533]
[x21,y21]:[467,56]
[x22,y2]:[813,664]
dy++; dy:174
err += plus; err:192
plus += 2; plus:349
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-415
dx += mask;; dx:303
minus -= mask & 2; minus:605
[x11,y11]:[337,186]
[x12,y12]:[943,534]
[x21,y21]:[466,57]
[x22,y2]:[814,663]
dy++; dy:175
err += plus; err:-66
plus += 2; plus:351
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-66
dx += mask;; dx:303
minus -= mask & 2; minus:605
[x11,y11]:[337,185]
[x12,y12]:[943,535]
[x21,y21]:[465,57]
[x22,y2]:[815,663]
dy++; dy:176
err += plus; err:285
plus += 2; plus:353
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-320
dx += mask;; dx:302
minus -= mask & 2; minus:603
[x11,y11]:[338,184]
[x12,y12]:[942,536]
[x21,y21]:[464,58]
[x22,y2]:[816,662]
dy++; dy:177
err += plus; err:33
plus += 2; plus:355
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-570
dx += mask;; dx:301
minus -= mask & 2; minus:601
[x11,y11]:[339,183]
[x12,y12]:[941,537]
[x21,y21]:[463,59]
[x22,y2]:[817,661]
dy++; dy:178
err += plus; err:-215
plus += 2; plus:357
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-215
dx += mask;; dx:301
minus -= mask & 2; minus:601
[x11,y11]:[339,182]
[x12,y12]:[941,538]
[x21,y21]:[462,59]
[x22,y2]:[818,661]
dy++; dy:179
err += plus; err:142
plus += 2; plus:359
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-459
dx += mask;; dx:300
minus -= mask & 2; minus:599
[x11,y11]:[340,181]
[x12,y12]:[940,539]
[x21,y21]:[461,60]
[x22,y2]:[819,660]
dy++; dy:180
err += plus; err:-100
plus += 2; plus:361
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-100
dx += mask;; dx:300
minus -= mask & 2; minus:599
[x11,y11]:[340,180]
[x12,y12]:[940,540]
[x21,y21]:[460,60]
[x22,y2]:[820,660]
dy++; dy:181
err += plus; err:261
plus += 2; plus:363
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-338
dx += mask;; dx:299
minus -= mask & 2; minus:597
[x11,y11]:[341,179]
[x12,y12]:[939,541]
[x21,y21]:[459,61]
[x22,y2]:[821,659]
dy++; dy:182
err += plus; err:25
plus += 2; plus:365
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-572
dx += mask;; dx:298
minus -= mask & 2; minus:595
[x11,y11]:[342,178]
[x12,y12]:[938,542]
[x21,y21]:[458,62]
[x22,y2]:[822,658]
dy++; dy:183
err += plus; err:-207
plus += 2; plus:367
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-207
dx += mask;; dx:298
minus -= mask & 2; minus:595
[x11,y11]:[342,177]
[x12,y12]:[938,543]
[x21,y21]:[457,62]
[x22,y2]:[823,658]
dy++; dy:184
err += plus; err:160
plus += 2; plus:369
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-435
dx += mask;; dx:297
minus -= mask & 2; minus:593
[x11,y11]:[343,176]
[x12,y12]:[937,544]
[x21,y21]:[456,63]
[x22,y2]:[824,657]
dy++; dy:185
err += plus; err:-66
plus += 2; plus:371
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-66
dx += mask;; dx:297
minus -= mask & 2; minus:593
[x11,y11]:[343,175]
[x12,y12]:[937,545]
[x21,y21]:[455,63]
[x22,y2]:[825,657]
dy++; dy:186
err += plus; err:305
plus += 2; plus:373
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-288
dx += mask;; dx:296
minus -= mask & 2; minus:591
[x11,y11]:[344,174]
[x12,y12]:[936,546]
[x21,y21]:[454,64]
[x22,y2]:[826,656]
dy++; dy:187
err += plus; err:85
plus += 2; plus:375
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-506
dx += mask;; dx:295
minus -= mask & 2; minus:589
[x11,y11]:[345,173]
[x12,y12]:[935,547]
[x21,y21]:[453,65]
[x22,y2]:[827,655]
dy++; dy:188
err += plus; err:-131
plus += 2; plus:377
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-131
dx += mask;; dx:295
minus -= mask & 2; minus:589
[x11,y11]:[345,172]
[x12,y12]:[935,548]
[x21,y21]:[452,65]
[x22,y2]:[828,655]
dy++; dy:189
err += plus; err:246
plus += 2; plus:379
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-343
dx += mask;; dx:294
minus -= mask & 2; minus:587
[x11,y11]:[346,171]
[x12,y12]:[934,549]
[x21,y21]:[451,66]
[x22,y2]:[829,654]
dy++; dy:190
err += plus; err:36
plus += 2; plus:381
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-551
dx += mask;; dx:293
minus -= mask & 2; minus:585
[x11,y11]:[347,170]
[x12,y12]:[933,550]
[x21,y21]:[450,67]
[x22,y2]:[830,653]
dy++; dy:191
err += plus; err:-170
plus += 2; plus:383
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-170
dx += mask;; dx:293
minus -= mask & 2; minus:585
[x11,y11]:[347,169]
[x12,y12]:[933,551]
[x21,y21]:[449,67]
[x22,y2]:[831,653]
dy++; dy:192
err += plus; err:213
plus += 2; plus:385
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-372
dx += mask;; dx:292
minus -= mask & 2; minus:583
[x11,y11]:[348,168]
[x12,y12]:[932,552]
[x21,y21]:[448,68]
[x22,y2]:[832,652]
dy++; dy:193
err += plus; err:13
plus += 2; plus:387
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-570
dx += mask;; dx:291
minus -= mask & 2; minus:581
[x11,y11]:[349,167]
[x12,y12]:[931,553]
[x21,y21]:[447,69]
[x22,y2]:[833,651]
dy++; dy:194
err += plus; err:-183
plus += 2; plus:389
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-183
dx += mask;; dx:291
minus -= mask & 2; minus:581
[x11,y11]:[349,166]
[x12,y12]:[931,554]
[x21,y21]:[446,69]
[x22,y2]:[834,651]
dy++; dy:195
err += plus; err:206
plus += 2; plus:391
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-375
dx += mask;; dx:290
minus -= mask & 2; minus:579
[x11,y11]:[350,165]
[x12,y12]:[930,555]
[x21,y21]:[445,70]
[x22,y2]:[835,650]
dy++; dy:196
err += plus; err:16
plus += 2; plus:393
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-563
dx += mask;; dx:289
minus -= mask & 2; minus:577
[x11,y11]:[351,164]
[x12,y12]:[929,556]
[x21,y21]:[444,71]
[x22,y2]:[836,649]
dy++; dy:197
err += plus; err:-170
plus += 2; plus:395
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-170
dx += mask;; dx:289
minus -= mask & 2; minus:577
[x11,y11]:[351,163]
[x12,y12]:[929,557]
[x21,y21]:[443,71]
[x22,y2]:[837,649]
dy++; dy:198
err += plus; err:225
plus += 2; plus:397
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-352
dx += mask;; dx:288
minus -= mask & 2; minus:575
[x11,y11]:[352,162]
[x12,y12]:[928,558]
[x21,y21]:[442,72]
[x22,y2]:[838,648]
dy++; dy:199
err += plus; err:45
plus += 2; plus:399
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-530
dx += mask;; dx:287
minus -= mask & 2; minus:573
[x11,y11]:[353,161]
[x12,y12]:[927,559]
[x21,y21]:[441,73]
[x22,y2]:[839,647]
dy++; dy:200
err += plus; err:-131
plus += 2; plus:401
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-131
dx += mask;; dx:287
minus -= mask & 2; minus:573
[x11,y11]:[353,160]
[x12,y12]:[927,560]
[x21,y21]:[440,73]
[x22,y2]:[840,647]
dy++; dy:201
err += plus; err:270
plus += 2; plus:403
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-303
dx += mask;; dx:286
minus -= mask & 2; minus:571
[x11,y11]:[354,159]
[x12,y12]:[926,561]
[x21,y21]:[439,74]
[x22,y2]:[841,646]
dy++; dy:202
err += plus; err:100
plus += 2; plus:405
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-471
dx += mask;; dx:285
minus -= mask & 2; minus:569
[x11,y11]:[355,158]
[x12,y12]:[925,562]
[x21,y21]:[438,75]
[x22,y2]:[842,645]
dy++; dy:203
err += plus; err:-66
plus += 2; plus:407
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-66
dx += mask;; dx:285
minus -= mask & 2; minus:569
[x11,y11]:[355,157]
[x12,y12]:[925,563]
[x21,y21]:[437,75]
[x22,y2]:[843,645]
dy++; dy:204
err += plus; err:341
plus += 2; plus:409
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-228
dx += mask;; dx:284
minus -= mask & 2; minus:567
[x11,y11]:[356,156]
[x12,y12]:[924,564]
[x21,y21]:[436,76]
[x22,y2]:[844,644]
dy++; dy:205
err += plus; err:181
plus += 2; plus:411
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-386
dx += mask;; dx:283
minus -= mask & 2; minus:565
[x11,y11]:[357,155]
[x12,y12]:[923,565]
[x21,y21]:[435,77]
[x22,y2]:[845,643]
dy++; dy:206
err += plus; err:25
plus += 2; plus:413
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-540
dx += mask;; dx:282
minus -= mask & 2; minus:563
[x11,y11]:[358,154]
[x12,y12]:[922,566]
[x21,y21]:[434,78]
[x22,y2]:[846,642]
dy++; dy:207
err += plus; err:-127
plus += 2; plus:415
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-127
dx += mask;; dx:282
minus -= mask & 2; minus:563
[x11,y11]:[358,153]
[x12,y12]:[922,567]
[x21,y21]:[433,78]
[x22,y2]:[847,642]
dy++; dy:208
err += plus; err:288
plus += 2; plus:417
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-275
dx += mask;; dx:281
minus -= mask & 2; minus:561
[x11,y11]:[359,152]
[x12,y12]:[921,568]
[x21,y21]:[432,79]
[x22,y2]:[848,641]
dy++; dy:209
err += plus; err:142
plus += 2; plus:419
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-419
dx += mask;; dx:280
minus -= mask & 2; minus:559
[x11,y11]:[360,151]
[x12,y12]:[920,569]
[x21,y21]:[431,80]
[x22,y2]:[849,640]
dy++; dy:210
err += plus; err:0
plus += 2; plus:421
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:0
dx += mask;; dx:280
minus -= mask & 2; minus:559
[x11,y11]:[360,150]
[x12,y12]:[920,570]
[x21,y21]:[430,80]
[x22,y2]:[850,640]
dy++; dy:211
err += plus; err:421
plus += 2; plus:423
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-138
dx += mask;; dx:279
minus -= mask & 2; minus:557
[x11,y11]:[361,149]
[x12,y12]:[919,571]
[x21,y21]:[429,81]
[x22,y2]:[851,639]
dy++; dy:212
err += plus; err:285
plus += 2; plus:425
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-272
dx += mask;; dx:278
minus -= mask & 2; minus:555
[x11,y11]:[362,148]
[x12,y12]:[918,572]
[x21,y21]:[428,82]
[x22,y2]:[852,638]
dy++; dy:213
err += plus; err:153
plus += 2; plus:427
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-402
dx += mask;; dx:277
minus -= mask & 2; minus:553
[x11,y11]:[363,147]
[x12,y12]:[917,573]
[x21,y21]:[427,83]
[x22,y2]:[853,637]
dy++; dy:214
err += plus; err:25
plus += 2; plus:429
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-528
dx += mask;; dx:276
minus -= mask & 2; minus:551
[x11,y11]:[364,146]
[x12,y12]:[916,574]
[x21,y21]:[426,84]
[x22,y2]:[854,636]
dy++; dy:215
err += plus; err:-99
plus += 2; plus:431
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-99
dx += mask;; dx:276
minus -= mask & 2; minus:551
[x11,y11]:[364,145]
[x12,y12]:[916,575]
[x21,y21]:[425,84]
[x22,y2]:[855,636]
dy++; dy:216
err += plus; err:332
plus += 2; plus:433
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-219
dx += mask;; dx:275
minus -= mask & 2; minus:549
[x11,y11]:[365,144]
[x12,y12]:[915,576]
[x21,y21]:[424,85]
[x22,y2]:[856,635]
dy++; dy:217
err += plus; err:214
plus += 2; plus:435
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-335
dx += mask;; dx:274
minus -= mask & 2; minus:547
[x11,y11]:[366,143]
[x12,y12]:[914,577]
[x21,y21]:[423,86]
[x22,y2]:[857,634]
dy++; dy:218
err += plus; err:100
plus += 2; plus:437
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-447
dx += mask;; dx:273
minus -= mask & 2; minus:545
[x11,y11]:[367,142]
[x12,y12]:[913,578]
[x21,y21]:[422,87]
[x22,y2]:[858,633]
dy++; dy:219
err += plus; err:-10
plus += 2; plus:439
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-10
dx += mask;; dx:273
minus -= mask & 2; minus:545
[x11,y11]:[367,141]
[x12,y12]:[913,579]
[x21,y21]:[421,87]
[x22,y2]:[859,633]
dy++; dy:220
err += plus; err:429
plus += 2; plus:441
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-116
dx += mask;; dx:272
minus -= mask & 2; minus:543
[x11,y11]:[368,140]
[x12,y12]:[912,580]
[x21,y21]:[420,88]
[x22,y2]:[860,632]
dy++; dy:221
err += plus; err:325
plus += 2; plus:443
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-218
dx += mask;; dx:271
minus -= mask & 2; minus:541
[x11,y11]:[369,139]
[x12,y12]:[911,581]
[x21,y21]:[419,89]
[x22,y2]:[861,631]
dy++; dy:222
err += plus; err:225
plus += 2; plus:445
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-316
dx += mask;; dx:270
minus -= mask & 2; minus:539
[x11,y11]:[370,138]
[x12,y12]:[910,582]
[x21,y21]:[418,90]
[x22,y2]:[862,630]
dy++; dy:223
err += plus; err:129
plus += 2; plus:447
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-410
dx += mask;; dx:269
minus -= mask & 2; minus:537
[x11,y11]:[371,137]
[x12,y12]:[909,583]
[x21,y21]:[417,91]
[x22,y2]:[863,629]
dy++; dy:224
err += plus; err:37
plus += 2; plus:449
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-500
dx += mask;; dx:268
minus -= mask & 2; minus:535
[x11,y11]:[372,136]
[x12,y12]:[908,584]
[x21,y21]:[416,92]
[x22,y2]:[864,628]
dy++; dy:225
err += plus; err:-51
plus += 2; plus:451
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-51
dx += mask;; dx:268
minus -= mask & 2; minus:535
[x11,y11]:[372,135]
[x12,y12]:[908,585]
[x21,y21]:[415,92]
[x22,y2]:[865,628]
dy++; dy:226
err += plus; err:400
plus += 2; plus:453
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-135
dx += mask;; dx:267
minus -= mask & 2; minus:533
[x11,y11]:[373,134]
[x12,y12]:[907,586]
[x21,y21]:[414,93]
[x22,y2]:[866,627]
dy++; dy:227
err += plus; err:318
plus += 2; plus:455
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-215
dx += mask;; dx:266
minus -= mask & 2; minus:531
[x11,y11]:[374,133]
[x12,y12]:[906,587]
[x21,y21]:[413,94]
[x22,y2]:[867,626]
dy++; dy:228
err += plus; err:240
plus += 2; plus:457
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-291
dx += mask;; dx:265
minus -= mask & 2; minus:529
[x11,y11]:[375,132]
[x12,y12]:[905,588]
[x21,y21]:[412,95]
[x22,y2]:[868,625]
dy++; dy:229
err += plus; err:166
plus += 2; plus:459
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-363
dx += mask;; dx:264
minus -= mask & 2; minus:527
[x11,y11]:[376,131]
[x12,y12]:[904,589]
[x21,y21]:[411,96]
[x22,y2]:[869,624]
dy++; dy:230
err += plus; err:96
plus += 2; plus:461
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-431
dx += mask;; dx:263
minus -= mask & 2; minus:525
[x11,y11]:[377,130]
[x12,y12]:[903,590]
[x21,y21]:[410,97]
[x22,y2]:[870,623]
dy++; dy:231
err += plus; err:30
plus += 2; plus:463
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-495
dx += mask;; dx:262
minus -= mask & 2; minus:523
[x11,y11]:[378,129]
[x12,y12]:[902,591]
[x21,y21]:[409,98]
[x22,y2]:[871,622]
dy++; dy:232
err += plus; err:-32
plus += 2; plus:465
mask = (err <= 0) - 1; mask:0
err -= minus & mask; err:-32
dx += mask;; dx:262
minus -= mask & 2; minus:523
[x11,y11]:[378,128]
[x12,y12]:[902,592]
[x21,y21]:[408,98]
[x22,y2]:[872,622]
dy++; dy:233
err += plus; err:433
plus += 2; plus:467
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-90
dx += mask;; dx:261
minus -= mask & 2; minus:521
[x11,y11]:[379,127]
[x12,y12]:[901,593]
[x21,y21]:[407,99]
[x22,y2]:[873,621]
dy++; dy:234
err += plus; err:377
plus += 2; plus:469
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-144
dx += mask;; dx:260
minus -= mask & 2; minus:519
[x11,y11]:[380,126]
[x12,y12]:[900,594]
[x21,y21]:[406,100]
[x22,y2]:[874,620]
dy++; dy:235
err += plus; err:325
plus += 2; plus:471
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-194
dx += mask;; dx:259
minus -= mask & 2; minus:517
[x11,y11]:[381,125]
[x12,y12]:[899,595]
[x21,y21]:[405,101]
[x22,y2]:[875,619]
dy++; dy:236
err += plus; err:277
plus += 2; plus:473
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-240
dx += mask;; dx:258
minus -= mask & 2; minus:515
[x11,y11]:[382,124]
[x12,y12]:[898,596]
[x21,y21]:[404,102]
[x22,y2]:[876,618]
dy++; dy:237
err += plus; err:233
plus += 2; plus:475
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-282
dx += mask;; dx:257
minus -= mask & 2; minus:513
[x11,y11]:[383,123]
[x12,y12]:[897,597]
[x21,y21]:[403,103]
[x22,y2]:[877,617]
dy++; dy:238
err += plus; err:193
plus += 2; plus:477
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-320
dx += mask;; dx:256
minus -= mask & 2; minus:511
[x11,y11]:[384,122]
[x12,y12]:[896,598]
[x21,y21]:[402,104]
[x22,y2]:[878,616]
dy++; dy:239
err += plus; err:157
plus += 2; plus:479
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-354
dx += mask;; dx:255
minus -= mask & 2; minus:509
[x11,y11]:[385,121]
[x12,y12]:[895,599]
[x21,y21]:[401,105]
[x22,y2]:[879,615]
dy++; dy:240
err += plus; err:125
plus += 2; plus:481
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-384
dx += mask;; dx:254
minus -= mask & 2; minus:507
[x11,y11]:[386,120]
[x12,y12]:[894,600]
[x21,y21]:[400,106]
[x22,y2]:[880,614]
dy++; dy:241
err += plus; err:97
plus += 2; plus:483
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-410
dx += mask;; dx:253
minus -= mask & 2; minus:505
[x11,y11]:[387,119]
[x12,y12]:[893,601]
[x21,y21]:[399,107]
[x22,y2]:[881,613]
dy++; dy:242
err += plus; err:73
plus += 2; plus:485
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-432
dx += mask;; dx:252
minus -= mask & 2; minus:503
[x11,y11]:[388,118]
[x12,y12]:[892,602]
[x21,y21]:[398,108]
[x22,y2]:[882,612]
dy++; dy:243
err += plus; err:53
plus += 2; plus:487
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-450
dx += mask;; dx:251
minus -= mask & 2; minus:501
[x11,y11]:[389,117]
[x12,y12]:[891,603]
[x21,y21]:[397,109]
[x22,y2]:[883,611]
dy++; dy:244
err += plus; err:37
plus += 2; plus:489
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-464
dx += mask;; dx:250
minus -= mask & 2; minus:499
[x11,y11]:[390,116]
[x12,y12]:[890,604]
[x21,y21]:[396,110]
[x22,y2]:[884,610]
dy++; dy:245
err += plus; err:25
plus += 2; plus:491
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-474
dx += mask;; dx:249
minus -= mask & 2; minus:497
[x11,y11]:[391,115]
[x12,y12]:[889,605]
[x21,y21]:[395,111]
[x22,y2]:[885,609]
dy++; dy:246
err += plus; err:17
plus += 2; plus:493
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-480
dx += mask;; dx:248
minus -= mask & 2; minus:495
[x11,y11]:[392,114]
[x12,y12]:[888,606]
[x21,y21]:[394,112]
[x22,y2]:[886,608]
dy++; dy:247
err += plus; err:13
plus += 2; plus:495
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-482
dx += mask;; dx:247
minus -= mask & 2; minus:493
[x11,y11]:[393,113]
[x12,y12]:[887,607]
[x21,y21]:[393,113]
[x22,y2]:[887,607]
dy++; dy:248
err += plus; err:13
plus += 2; plus:497
mask = (err <= 0) - 1; mask:-1
err -= minus & mask; err:-480
dx += mask;; dx:246
minus -= mask & 2; minus:491
equal
xiaxinkai@xiaxinkai:~/demo/opencv_circle$

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值