Пример #1
0
void plot_to_row(                 //draw a row
        TO_ROW *row,     //row to draw
        ScrollView::Color colour,   //colour to draw in
        FCOORD rotation  //rotation for line
) {
    FCOORD plot_pt;                //point to plot
    //blobs
    BLOBNBOX_IT it = row->blob_list();
    float left, right;             //end of row

    if (it.empty()) {
        tprintf("No blobs in row at %g\n", row->parallel_c());
        return;
    }
    left = it.data()->bounding_box().left();
    it.move_to_last();
    right = it.data()->bounding_box().right();
    plot_blob_list(to_win, row->blob_list(), colour, ScrollView::BROWN);
    to_win->Pen(colour);
    plot_pt = FCOORD(left, row->line_m() * left + row->line_c());
    plot_pt.rotate(rotation);
    to_win->SetCursor(plot_pt.x(), plot_pt.y());
    plot_pt = FCOORD(right, row->line_m() * right + row->line_c());
    plot_pt.rotate(rotation);
    to_win->DrawTo(plot_pt.x(), plot_pt.y());
}
Пример #2
0
void plot_parallel_row(                 //draw a row
        TO_ROW *row,     //row to draw
        float gradient,  //gradients of lines
        inT32 left,      //edge of block
        ScrollView::Color colour,   //colour to draw in
        FCOORD rotation  //rotation for line
) {
    FCOORD plot_pt;                //point to plot
    //blobs
    BLOBNBOX_IT it = row->blob_list();
    float fleft = (float) left;    //floating version
    float right;                   //end of row

    //      left=it.data()->bounding_box().left();
    it.move_to_last();
    right = it.data()->bounding_box().right();
    plot_blob_list(to_win, row->blob_list(), colour, ScrollView::BROWN);
    to_win->Pen(colour);
    plot_pt = FCOORD(fleft, gradient * left + row->max_y());
    plot_pt.rotate(rotation);
    to_win->SetCursor(plot_pt.x(), plot_pt.y());
    plot_pt = FCOORD(fleft, gradient * left + row->min_y());
    plot_pt.rotate(rotation);
    to_win->DrawTo(plot_pt.x(), plot_pt.y());
    plot_pt = FCOORD(fleft, gradient * left + row->parallel_c());
    plot_pt.rotate(rotation);
    to_win->SetCursor(plot_pt.x(), plot_pt.y());
    plot_pt = FCOORD(right, gradient * right + row->parallel_c());
    plot_pt.rotate(rotation);
    to_win->DrawTo(plot_pt.x(), plot_pt.y());
}