Top Banner

of 108

Cg Final Editied Record

Mar 05, 2016

Download

Documents

karthickamsec

computer graphics lab
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

EX NO: 1(A)DRAW A LINE USING BRESENHAMS ALGORITHM

DATE:AIM:To implement Bresenhams line drawing Algorithm for drawing lines.ALGORITHM:Step 1: StartStep 2: Get the values of the end points as(x1, y1) &(x2, y2) Step 3: Assign x=x1, y=y1Step 4: Compute dx=x2-x1 Step 5: Compute dy=y2-y1Step 6: Assign sx=x2-x1, sy=y2-y1Step 7: If dy>dx then interchange the values of dx and dy and assign exch=1 Step 8: Compute p=2xdy-dxStep 9: Put a pixel on(x,y)Step 10: If exch=1, y=sy else x=x+sxStep 11: If p>0 and exch =1, x=x+sx else y=y+sy, p=p-2xdx Step 12: Compute p=p+2xdyStep 13: Do steps (9) t0 (12) for dx times Step 14: Stop

PROGRAM:#include#include#include#include#include#include void main(){int driver,mode,k xa,xb,ya,yb,dx,dy,x,y,i,p,dy2,dydx2; char str[10];clrscr();printf("\nenter starting pt(xa,ya):"); scanf("%d%d",&xa,&ya); printf("\nenter ending pt(xb,yb):"); scanf("%d,%d",&xb,&yb);x=xa;y=ya;driver=DETECT;initgraph(&driver,&mode,"C:/TC/BGI"); printf("\nBRESENHAMS LINE ALGORITHM"); dx=abs(xb-xa);dy=abs(yb-ya); p=(2*dy)-dx; dy2=2*dy; dydx2=2*(dy-dx);

circle(x,y,2);putpixel(x,y,4);sprintf(str,"(%d,%d)",xa,ya);outtextxy(x+5,y,str);putpixel(x,y,2);for(i=0;i