Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void do_conic(color,n,x1,x2,x3,y1,y2,y3)
- short color,n;
- long x1,x2,x3,y1,y2,y3;
- {
- short cur_x, cur_y;
- short old_x, old_y;
- long px, py, rx, ry, nx, ny;
- long t, c;
- long temp;
- vm_lcolor = color;
- // y2 = y2 << 1;
- px = x3 + x1 - (x2<<1);
- py = y3 + y1 - (y2<<1);
- rx = (x2 - x1) << (n + 1);
- ry = (y2 - y1) << (n + 1);
- temp = n << 1;
- nx = x1 << temp;
- ny = y1 << temp;
- c = 1 << n;
- old_x = (short) (nx>>temp);
- old_y = (short) (ny>>temp);
- for ( t = 0; t <= c; t++)
- {
- cur_x = (short) (nx>>temp);
- cur_y = (short) (ny>>temp);
- if (old_x != cur_x || old_y != cur_y)
- {
- vm_line (old_x, old_y, cur_x, cur_y);
- old_x = cur_x;
- old_y = cur_y;
- }
- nx += (rx+(t*2+1)*px);
- ny += (ry+(t*2+1)*py);
- }
- }
- void draw_curved_line(x1,y1,x2,y2,len_diff)
- short x1,y1,x2,y2,len_diff;
- {
- short x_cp,y_cp;
- if (len_diff > 4)
- {
- x_cp = (x1+x2)>>1;
- y_cp = ((y1+y2)>>1) + len_diff;
- do_conic(vm_lcolor,4,(long)x1,(long)x_cp,(long)x2,(long)y1,(long)y_cp,(long)y2);
- }
- else
- vm_line(x1,y1,x2,y2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement