<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>ITAbatch2011&#039;s Blog</title>
	<atom:link href="http://itabatch2011.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://itabatch2011.wordpress.com</link>
	<description>Access anywhere</description>
	<lastBuildDate>Sun, 08 Nov 2009 04:41:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='itabatch2011.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>ITAbatch2011&#039;s Blog</title>
		<link>http://itabatch2011.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://itabatch2011.wordpress.com/osd.xml" title="ITAbatch2011&#039;s Blog" />
	<atom:link rel='hub' href='http://itabatch2011.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Topics and Links:</title>
		<link>http://itabatch2011.wordpress.com/2009/11/07/topics-and-links/</link>
		<comments>http://itabatch2011.wordpress.com/2009/11/07/topics-and-links/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:50:17 +0000</pubDate>
		<dc:creator>TIA!</dc:creator>
				<category><![CDATA[cgvrs]]></category>
		<category><![CDATA[first]]></category>
		<category><![CDATA[front]]></category>
		<category><![CDATA[page]]></category>

		<guid isPermaLink="false">http://itabatch2011.wordpress.com/?p=20</guid>
		<description><![CDATA[1&#62;dda and bresenham 2&#62;2d and 3d transformation 3&#62;COHEN SUTHERLAND and Liang-Barsky Line Clipping 4&#62;SUTHERLAND-HODGMAN POLYGON CLIPPING 5&#62;Character Generation 6&#62;elipse by using mid-point 7&#62;Bezier Curve using Midpoint and parametric<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=20&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://itabatch2011.wordpress.com/2009/11/07/dda/" target="_self">1&gt;dda and bresenham</a></p>
<p><a href="http://itabatch2011.wordpress.com/2009/11/07/2d-and-3d/" target="_self">2&gt;2d and 3d transformation</a></p>
<p><a href="http://itabatch2011.wordpress.com/2009/11/07/cohen-sutherland-line-clipping/" target="_self">3&gt;COHEN SUTHERLAND and Liang-Barsky Line Clipping</a></p>
<p><a href="http://itabatch2011.wordpress.com/2009/11/07/sutherland-hodgman-polygon-clipping/" target="_self">4&gt;SUTHERLAND-HODGMAN POLYGON CLIPPING</a></p>
<p><a href="http://itabatch2011.wordpress.com/2009/11/07/character-generation/" target="_self">5&gt;Character Generation</a></p>
<p><a href="http://itabatch2011.wordpress.com/2009/11/07/elipse-by-using-mid-point/" target="_self">6&gt;elipse by using mid-point</a></p>
<p><a href="http://itabatch2011.wordpress.com/2009/11/07/bezier-curve-using-midpoint-and-parametric/">7&gt;Bezier Curve using Midpoint and parametric</a></p>
<h2></h2>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itabatch2011.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itabatch2011.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itabatch2011.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itabatch2011.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/itabatch2011.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/itabatch2011.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/itabatch2011.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/itabatch2011.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itabatch2011.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itabatch2011.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itabatch2011.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itabatch2011.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itabatch2011.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itabatch2011.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=20&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://itabatch2011.wordpress.com/2009/11/07/topics-and-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a682936a76085a6dc36ec2c27a2228f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TIA!</media:title>
		</media:content>
	</item>
		<item>
		<title>Bezier Curve using Midpoint and parametric</title>
		<link>http://itabatch2011.wordpress.com/2009/11/07/bezier-curve-using-midpoint-and-parametric/</link>
		<comments>http://itabatch2011.wordpress.com/2009/11/07/bezier-curve-using-midpoint-and-parametric/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:28:07 +0000</pubDate>
		<dc:creator>TIA!</dc:creator>
				<category><![CDATA[cgvrs]]></category>
		<category><![CDATA[Bezier]]></category>
		<category><![CDATA[Curve]]></category>
		<category><![CDATA[Midpoint]]></category>
		<category><![CDATA[parametric]]></category>

		<guid isPermaLink="false">http://itabatch2011.wordpress.com/?p=18</guid>
		<description><![CDATA[&#160; To Implement Bezier Curve using Midpoint approach*/ #include&#60;stdio.h&#62; #include&#60;graphics.h&#62; #include&#60;conio.h&#62; &#160; int gd,gm,maxx,maxy; float xxx[4][2]; void line1(float x2,float y2) { line(xxx[0][0],xxx[0][1],x2,y2); xxx[0][0]=x2; xxx[0][1]=y2; } bezier(float xb,float yb,float xc,float yc,float xd,float yd,int n) { float xab,yab,xbc,ybc,xcd,ycd; float xabc,yabc,xbcd,ybcd; float xabcd,yabcd; if(n==0) { line1(xb,yb); line1(xc,yc); line1(xd,yd); } else { xab = (xxx[0][0]+xb)/2; yab = (xxx[0][1]+yb)/2; xbc [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=18&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>To Implement Bezier Curve using Midpoint approach*/</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>#include&lt;conio.h&gt;</p>
<p>&nbsp;</p>
<p>int gd,gm,maxx,maxy;</p>
<p>float xxx[4][2];</p>
<p>void line1(float x2,float y2)</p>
<p>{</p>
<p>line(xxx[0][0],xxx[0][1],x2,y2);</p>
<p>xxx[0][0]=x2;</p>
<p>xxx[0][1]=y2;</p>
<p>}</p>
<p>bezier(float xb,float yb,float xc,float yc,float xd,float yd,int n)</p>
<p>{</p>
<p>float xab,yab,xbc,ybc,xcd,ycd;</p>
<p>float xabc,yabc,xbcd,ybcd;</p>
<p>float xabcd,yabcd;</p>
<p>if(n==0)</p>
<p>{</p>
<p>line1(xb,yb);</p>
<p>line1(xc,yc);</p>
<p>line1(xd,yd);</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>xab = (xxx[0][0]+xb)/2;</p>
<p>yab = (xxx[0][1]+yb)/2;</p>
<p>xbc = (xb+xc)/2;</p>
<p>ybc = (yb+yc)/2;</p>
<p>xcd = (xc+xd)/2;</p>
<p>ycd = (yc+yd)/2;</p>
<p>xabc = (xab+xbc)/2;</p>
<p>yabc = (yab+ybc)/2;</p>
<p>xbcd= (xbc+xcd)/2;</p>
<p>ybcd = (ybc+ycd)/2;</p>
<p>xabcd = (xabc+xbcd)/2;</p>
<p>yabcd = (yabc+ybcd)/2;</p>
<p>n=n-1;</p>
<p>bezier(xab,yab,xabc,yabc,xabcd,yabcd,n);</p>
<p>bezier(xbcd,ybcd,xcd,ycd,xd,yd,n);</p>
<p>}</p>
<p>&nbsp;</p>
<p>}</p>
<p>void igraph()</p>
<p>{</p>
<p>detectgraph(&amp;gd,&amp;gm);</p>
<p>if(gd&lt;0)</p>
<p>{</p>
<p>puts(&#8220;CANNOT DETECT A GRAPHICS CARD&#8221;);</p>
<p>exit(1);</p>
<p>}</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tc\\bgi&#8221;);</p>
<p>&nbsp;</p>
<p>}</p>
<p>main()</p>
<p>{</p>
<p>int i;</p>
<p>float temp1,temp2;</p>
<p>igraph();</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;4;i++)</p>
<p>{</p>
<p>printf(&#8220;Enter x coordinates of point %d: &#8220;,i+1);</p>
<p>scanf(&#8220;%f&#8221;,&amp;temp1);</p>
<p>printf(&#8220;Enter the y coordinates of point %d:&#8221;,i+1);</p>
<p>scanf(&#8220;%f&#8221;,&amp;temp2);</p>
<p>&nbsp;</p>
<p>xxx[i][0] = temp1;</p>
<p>xxx[i][1] = temp2;</p>
<p>}</p>
<p>bezier(xxx[1][0],xxx[1][1],xxx[2][0],xxx[2][1],xxx[3][0],xxx[3][1],8);</p>
<p>getch();</p>
<p>closegraph();</p>
<p>return(0);</p>
<p>&nbsp;</p>
<p>}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>/////////////////////////</p>
<p>To Implement Bezier Curve*/</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>&nbsp;</p>
<p>int x,y,z;</p>
<p>main()</p>
<p>{</p>
<p>float  u;</p>
<p>int    gd,gm,ymax,i,n,c[4][3];</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;4;i++)  { c[i][0]=0; c[i][1]=0; }</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>printf(&#8220;\n\n  Enter four points  :  \n\n&#8221;);</p>
<p>&nbsp;</p>
<p>for(i=0; i&lt;4; i++)</p>
<p>{</p>
<p>printf(&#8220;\t X%d   Y%d     :  &#8220;,i,i);</p>
<p>scanf(&#8220;%d %d&#8221;,&amp;c[i][0],&amp;c[i][1]);</p>
<p>&nbsp;</p>
<p>}</p>
<p>&nbsp;</p>
<p>c[4][0]=c[0][0];</p>
<p>c[4][1]=c[0][1];</p>
<p>&nbsp;</p>
<p>detectgraph(&amp;gd,&amp;gm);</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221; &#8220;);</p>
<p>&nbsp;</p>
<p>ymax = 480;</p>
<p>&nbsp;</p>
<p>setcolor(35);</p>
<p>for(i=0;i&lt;3;i++)</p>
<p>{</p>
<p>line(c[i][0],ymax-c[i][1],c[i+1][0],ymax-c[i+1][1]);</p>
<p>}</p>
<p>&nbsp;</p>
<p>setcolor(63);</p>
<p>n=3;</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;=40;i++)</p>
<p>{</p>
<p>u=(float)i/40.0;</p>
<p>bezier(u,n,c);</p>
<p>&nbsp;</p>
<p>if(i==0)</p>
<p>{ moveto(x,ymax-y);}</p>
<p>else</p>
<p>{ lineto(x,ymax-y); }</p>
<p>getch();</p>
<p>}</p>
<p>getch();getch();</p>
<p>}/*-main()-*/</p>
<p>/*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; CURVE.C &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*/</p>
<p>bezier(u,n,p)</p>
<p>float u;int n; int p[4][3];</p>
<p>{</p>
<p>int j;</p>
<p>float v,b;</p>
<p>float blend(int,int,float);</p>
<p>x=0;y=0;z=0;</p>
<p>for(j=0;j&lt;=n;j++)</p>
<p>{</p>
<p>b=blend(j,n,u);</p>
<p>x=x+(p[j][0]*b);</p>
<p>y=y+(p[j][1]*b);</p>
<p>z=z+(p[j][2]*b);</p>
<p>}</p>
<p>}</p>
<p>&nbsp;</p>
<p>float blend(int j,int n,float u)</p>
<p>{</p>
<p>int k;</p>
<p>float v,blend;</p>
<p>v=C(n,j);</p>
<p>for(k=0;k&lt;j;k++)</p>
<p>{ v*=u; }</p>
<p>for(k=1;k&lt;=(n-j);k++)</p>
<p>{ v *= (1-u); }</p>
<p>blend=v;</p>
<p>return(blend);</p>
<p>}</p>
<p>&nbsp;</p>
<p>C(int n,int j)</p>
<p>{</p>
<p>int k,a,c;</p>
<p>a=1;</p>
<p>for(k=j+1;k&lt;=n;k++)  { a*=k; }</p>
<p>for(k=1;k&lt;=(n-j);k++)   { a=a/k; }</p>
<p>c=a;</p>
<p>return(c);</p>
<p>}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itabatch2011.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itabatch2011.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itabatch2011.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itabatch2011.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/itabatch2011.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/itabatch2011.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/itabatch2011.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/itabatch2011.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itabatch2011.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itabatch2011.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itabatch2011.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itabatch2011.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itabatch2011.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itabatch2011.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=18&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://itabatch2011.wordpress.com/2009/11/07/bezier-curve-using-midpoint-and-parametric/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a682936a76085a6dc36ec2c27a2228f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TIA!</media:title>
		</media:content>
	</item>
		<item>
		<title>elipse by using mid-point</title>
		<link>http://itabatch2011.wordpress.com/2009/11/07/elipse-by-using-mid-point/</link>
		<comments>http://itabatch2011.wordpress.com/2009/11/07/elipse-by-using-mid-point/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:25:26 +0000</pubDate>
		<dc:creator>TIA!</dc:creator>
				<category><![CDATA[cgvrs]]></category>
		<category><![CDATA[elipse]]></category>
		<category><![CDATA[mid-point]]></category>

		<guid isPermaLink="false">http://itabatch2011.wordpress.com/?p=16</guid>
		<description><![CDATA[Program : To  draw an elipse by suing mid-point ellipse generation algorithm.*/ #include&#60;iostream.h&#62; #include&#60;dos.h&#62; #include&#60;conio.h&#62; #include&#60;math.h&#62; #include&#60;graphics.h&#62; void display (int xs1, int ys1, int x, int y); void ellips1(int xs1,int ys1,int rx, int ry) { int x,y; float d1,d2,dx,dy; x = 0;                  // take start position as (0,ry) y = ry;             // finding decision parameter [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=16&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Program : To  draw an elipse by suing mid-point ellipse generation algorithm.*/</p>
<p>#include&lt;iostream.h&gt;</p>
<p>#include&lt;dos.h&gt;</p>
<p>#include&lt;conio.h&gt;</p>
<p>#include&lt;math.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>void display (int xs1, int ys1, int x, int y);</p>
<p>void ellips1(int xs1,int ys1,int rx, int ry)</p>
<p>{</p>
<p>int x,y;</p>
<p>float d1,d2,dx,dy;</p>
<p>x = 0;                  // take start position as (0,ry)</p>
<p>y = ry;              // finding decision parameter d1</p>
<p>d1 = pow(ry,2) &#8211; (pow(rx,2) * ry) + (0.25 * pow(rx,2));</p>
<p>dx = 2 * pow(ry,2) * x;</p>
<p>dy = 2 * pow(rx,2) * y;</p>
<p>do                         // region one</p>
<p>{</p>
<p>display(xs1,ys1,x,y);</p>
<p>if(d1&lt;0)</p>
<p>{</p>
<p>x++;</p>
<p>dx = dx + (2 * (pow(ry,2)));</p>
<p>d1 = d1 + dx +(pow(ry,2));</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>x++;</p>
<p>y&#8211;;</p>
<p>dx = dx + (2 * (pow(ry,2)));</p>
<p>dy = dy &#8211; (2 * (pow(rx,2)));</p>
<p>d1 = d1 + dx &#8211; dy + (pow(ry,2));</p>
<p>}</p>
<p>}while(dx&lt;dy);      // change over condition for region-2</p>
<p>do                       // region two</p>
<p>{</p>
<p>display(xs1,ys1,x,y);</p>
<p>if(d2&gt;0)</p>
<p>{</p>
<p>x = x;</p>
<p>y&#8211;;</p>
<p>dy = dy &#8211; (2 * (pow(rx,2)));</p>
<p>d2 = d2 &#8211; dy + pow(rx,2);</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>x++;</p>
<p>y&#8211;;</p>
<p>dy = dy &#8211; (2 * (pow(rx,2)));</p>
<p>dx = dx + (2 * (pow(ry,2)));</p>
<p>d2 = d2 +dx &#8211; dy + pow(rx,2);</p>
<p>&nbsp;</p>
<p>}</p>
<p>}while(y&gt;0);</p>
<p>}</p>
<p>void display(int xs,int ys,int x,int y)</p>
<p>{</p>
<p>putpixel(xs+x,ys+y,WHITE); // plot points by using 4 point symmetry</p>
<p>putpixel(xs-x,ys-y,WHITE);</p>
<p>putpixel(xs+x,ys-y,WHITE);</p>
<p>putpixel(xs-x,ys+y,WHITE);</p>
<p>}</p>
<p>int main(void)</p>
<p>{</p>
<p>int xs1,ys1;</p>
<p>float rx1,ry1;</p>
<p>int gd = DETECT,gm;           // Initialise the graphics system</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tc\\bgi&#8221;);</p>
<p>cout&lt;&lt;&#8221;\t\tMidpoint Ellipe Drawing Algorithm\n&#8221;;</p>
<p>cout&lt;&lt;&#8221;Enter the Center Co-ordinates\n&#8221;;</p>
<p>cout&lt;&lt;&#8221;xc = \t&#8221;;</p>
<p>cin&gt;&gt;xs1;</p>
<p>cout&lt;&lt;&#8221;yc = \t&#8221;;</p>
<p>cin&gt;&gt;ys1;</p>
<p>cout&lt;&lt;&#8221;Enter the X Radius\t&#8221;;</p>
<p>cin&gt;&gt;rx1;</p>
<p>cout&lt;&lt;&#8221;Enter the Y Radius\t&#8221;;</p>
<p>cin&gt;&gt;ry1;</p>
<p>ellips1(xs1,ys1,rx1,ry1);</p>
<p>getch();</p>
<p>closegraph();</p>
<p>}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itabatch2011.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itabatch2011.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itabatch2011.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itabatch2011.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/itabatch2011.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/itabatch2011.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/itabatch2011.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/itabatch2011.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itabatch2011.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itabatch2011.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itabatch2011.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itabatch2011.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itabatch2011.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itabatch2011.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=16&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://itabatch2011.wordpress.com/2009/11/07/elipse-by-using-mid-point/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a682936a76085a6dc36ec2c27a2228f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TIA!</media:title>
		</media:content>
	</item>
		<item>
		<title>Character Generation</title>
		<link>http://itabatch2011.wordpress.com/2009/11/07/character-generation/</link>
		<comments>http://itabatch2011.wordpress.com/2009/11/07/character-generation/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:22:07 +0000</pubDate>
		<dc:creator>TIA!</dc:creator>
				<category><![CDATA[cgvrs]]></category>
		<category><![CDATA[Character]]></category>
		<category><![CDATA[Generation]]></category>

		<guid isPermaLink="false">http://itabatch2011.wordpress.com/?p=14</guid>
		<description><![CDATA[Character Generation implementation*/ #include&#60;stdio.h&#62; #include&#60;graphics.h&#62; main() { int gd,gm,i,j; /* Save character map of letter A &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- */ int a[13][9] = { { 0, 0, 0, 0, 1, 0, 0, 0, 0}, { 0, 0, 0, 1, 0, 1, 0, 0, 0}, { 0, 0, 1, 0, 0, 0, 1, 0, 0}, { 0, 1, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=14&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Character Generation implementation*/</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>main()</p>
<p>{</p>
<p>int gd,gm,i,j;</p>
<p>/* Save character map of letter A</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- */</p>
<p>int a[13][9] = {</p>
<p>{ 0, 0, 0, 0, 1, 0, 0, 0, 0},</p>
<p>{ 0, 0, 0, 1, 0, 1, 0, 0, 0},</p>
<p>{ 0, 0, 1, 0, 0, 0, 1, 0, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>{ 0, 1, 1, 1, 1, 1, 1, 1, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>{ 0, 1, 0, 0, 0, 0, 0, 1, 0},</p>
<p>};</p>
<p>&nbsp;</p>
<p>/* Initialise graphics mode</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- */</p>
<p>detectgraph(&amp;gd,&amp;gm);</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tc\\bgi&#8221;);</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;13;i++)</p>
<p>{</p>
<p>for(j=0;j&lt;9;j++)</p>
<p>{</p>
<p>putpixel(200+j,200+i,30*a[i][j]);</p>
<p>}</p>
<p>}</p>
<p>getch();</p>
<p>closegraph();</p>
<p>}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itabatch2011.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itabatch2011.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itabatch2011.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itabatch2011.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/itabatch2011.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/itabatch2011.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/itabatch2011.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/itabatch2011.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itabatch2011.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itabatch2011.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itabatch2011.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itabatch2011.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itabatch2011.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itabatch2011.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=14&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://itabatch2011.wordpress.com/2009/11/07/character-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a682936a76085a6dc36ec2c27a2228f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TIA!</media:title>
		</media:content>
	</item>
		<item>
		<title>SUTHERLAND-HODGMAN POLYGON CLIPPING</title>
		<link>http://itabatch2011.wordpress.com/2009/11/07/sutherland-hodgman-polygon-clipping/</link>
		<comments>http://itabatch2011.wordpress.com/2009/11/07/sutherland-hodgman-polygon-clipping/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:20:23 +0000</pubDate>
		<dc:creator>TIA!</dc:creator>
				<category><![CDATA[cgvrs]]></category>
		<category><![CDATA[CLIPPING]]></category>
		<category><![CDATA[HODGMAN]]></category>
		<category><![CDATA[POLYGON]]></category>
		<category><![CDATA[SUTHERLAND]]></category>

		<guid isPermaLink="false">http://itabatch2011.wordpress.com/?p=12</guid>
		<description><![CDATA[SUTHERLAND-HODGMAN POLYGON CLIPPING */ &#160; #include &#60;math.h&#62; #include &#60;stdio.h&#62; #include &#60;graphics.h&#62; int         n,p,x,y,i,j; int         xwmin,ywmin,xwmax,ywmax; int         x1,y1,x2,y2,xmax,ymax; float      m; char      flag; float      dy,dx; &#160; main() { int gd,gm; int a[10][10],b[10][10],c[10][10],d[10][10],e[10][10]; detectgraph(&#38;gd,&#38;gm); initgraph(&#38;gd,&#38;gm,&#8221;"); printf(&#8220;\n\n\tEnter the no. of edges of polygon :  &#8220;); scanf(&#8220;%d&#8221;,&#38;n); printf(&#8220;\n\n\tEnter the cordinates  of  polygon :\n\n\n &#8220;); [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=12&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>SUTHERLAND-HODGMAN POLYGON CLIPPING */</p>
<p>&nbsp;</p>
<p>#include &lt;math.h&gt;</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;graphics.h&gt;</p>
<p>int         n,p,x,y,i,j;</p>
<p>int         xwmin,ywmin,xwmax,ywmax;</p>
<p>int         x1,y1,x2,y2,xmax,ymax;</p>
<p>float      m;</p>
<p>char      flag;</p>
<p>float      dy,dx;</p>
<p>&nbsp;</p>
<p>main()</p>
<p>{</p>
<p>int gd,gm;</p>
<p>int a[10][10],b[10][10],c[10][10],d[10][10],e[10][10];</p>
<p>detectgraph(&amp;gd,&amp;gm);</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;");</p>
<p>printf(&#8220;\n\n\tEnter the no. of edges of polygon :  &#8220;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;n);</p>
<p>printf(&#8220;\n\n\tEnter the cordinates  of  polygon :\n\n\n &#8220;);</p>
<p>for(i=0;i&lt;n;i++)</p>
<p>{</p>
<p>printf(&#8220;\tX%d  Y%d  :  &#8220;,i,i);</p>
<p>scanf(&#8220;%d %d&#8221;,&amp;a[i][0],&amp;a[i][1]);</p>
<p>}</p>
<p>a[n][0]=a[0][0];</p>
<p>a[n][1]=a[0][1];</p>
<p>printf(&#8220;\n\tEnter the co_ordinates of window  :\n &#8220;);</p>
<p>printf(&#8220;\n\txwmin , ywmin  : &#8220;);</p>
<p>scanf(&#8220;%d %d&#8221;,&amp;xwmin,&amp;ywmin);</p>
<p>printf(&#8220;\n\txwmax , ywmax  : &#8220;);</p>
<p>scanf(&#8220;%d %d&#8221;,&amp;xwmax,&amp;ywmax);</p>
<p>xmax = 640; ymax = 480;</p>
<p>cleardevice();</p>
<p>setcolor(35);</p>
<p>for(i=0;i&lt;n;i++)</p>
<p>{</p>
<p>line(a[i][0],ymax-a[i][1],a[i+1][0],ymax-a[i+1][1]);</p>
<p>}</p>
<p>rectangle(xwmin,ymax-ywmin,xwmax,ymax-ywmax);</p>
<p>getch();</p>
<p>setcolor(35);</p>
<p>&nbsp;</p>
<p>clip_left(a,b);</p>
<p>clip_right(b,c);</p>
<p>clip_bottom(c,d);</p>
<p>clip_top(d,e);</p>
<p>cleardevice();</p>
<p>setcolor(63);</p>
<p>for(i=0;i&lt;p;i++)</p>
<p>{</p>
<p>line(e[i][0],ymax-e[i][1],e[i+1][0],ymax-e[i+1][1]);</p>
<p>}</p>
<p>getch();</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>}/*-main()-*/</p>
<p>&nbsp;</p>
<p>clip_left(int a[10][10], int b[10][10])</p>
<p>{</p>
<p>&nbsp;</p>
<p>p=0;flag=0;m=0;</p>
<p>for(i=0;i&lt;n;i++)</p>
<p>{</p>
<p>&nbsp;</p>
<p>dy=a[i+1][1]-a[i][1];</p>
<p>dx=a[i+1][0]-a[i][0];</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>if((dx!=0)&amp;&amp;(dy!=0))</p>
<p>{</p>
<p>m=(dy/dx);</p>
<p>}</p>
<p>&nbsp;</p>
<p>if((a[i][0]&lt;xwmin)&amp;&amp;(a[i+1][0]&gt;=xwmin) )      flag=0;</p>
<p>if((a[i][0]&gt;=xwmin)&amp;&amp;(a[i+1][0]&gt;=xwmin))     flag=1;</p>
<p>if((a[i][0]&gt;=xwmin)&amp;&amp;(a[i+1][0]&lt;xwmin))       flag=2;</p>
<p>if((a[i][0]&lt;xwmin)&amp;&amp;(a[i+1][0]&lt;xwmin) )         flag=3;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>switch(flag)</p>
<p>{</p>
<p>case 0 :</p>
<p>x=xwmin;</p>
<p>if(dy!=0)</p>
<p>y=(int)(a[i][1]+m*(x-a[i][0]));</p>
<p>else</p>
<p>y=a[i][1];</p>
<p>&nbsp;</p>
<p>b[p][0]=x;</p>
<p>b[p][1]=y;</p>
<p>p++;</p>
<p>&nbsp;</p>
<p>b[p][0]=a[i+1][0];</p>
<p>b[p][1]=a[i+1][1];</p>
<p>p++;</p>
<p>break;</p>
<p>&nbsp;</p>
<p>case 1 :</p>
<p>b[p][0]=a[i+1][0];</p>
<p>b[p][1]=a[i+1][1];</p>
<p>p++;</p>
<p>break;</p>
<p>&nbsp;</p>
<p>case 2 :</p>
<p>x=xwmin;</p>
<p>if(dy!=0)</p>
<p>y=(int)(a[i][1]+m*(x-a[i][0]));</p>
<p>else</p>
<p>y=a[i][1];</p>
<p>&nbsp;</p>
<p>b[p][0]=x;</p>
<p>b[p][1]=y;</p>
<p>p++;</p>
<p>}</p>
<p>}/*-for()-*/</p>
<p>&nbsp;</p>
<p>b[p][0]=b[0][0];</p>
<p>b[p][1]=b[0][1];</p>
<p>&nbsp;</p>
<p>cleardevice();</p>
<p>setcolor(35);</p>
<p>rectangle(xwmin,ymax-ywmin,xwmax,ymax-ywmax);</p>
<p>setcolor(63);</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;p;i++)</p>
<p>{</p>
<p>line(b[i][0],ymax-b[i][1],b[i+1][0],ymax-b[i+1][1]);</p>
<p>getch();</p>
<p>}</p>
<p>getch();</p>
<p>}</p>
<p>&nbsp;</p>
<p>clip_right(int b[10][10],int c[10][10])</p>
<p>{</p>
<p>&nbsp;</p>
<p>n=p; p=0; m=0;</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;n;i++)</p>
<p>{</p>
<p>dy=b[i+1][1]-b[i][1];</p>
<p>dx=b[i+1][0]-b[i][0];</p>
<p>&nbsp;</p>
<p>if((dx!=0)&amp;&amp;(dy!=0))</p>
<p>{</p>
<p>m=(dy/dx);</p>
<p>}</p>
<p>&nbsp;</p>
<p>if((b[i][0]&gt;xwmax)&amp;&amp;(b[i+1][0]&lt;=xwmax) )  flag=0;</p>
<p>if((b[i][0]&lt;=xwmax)&amp;&amp;(b[i+1][0]&lt;=xwmax) ) flag=1;</p>
<p>if((b[i][0]&lt;=xwmax)&amp;&amp;(b[i+1][0]&gt;xwmax) )  flag=2;</p>
<p>if((b[i][0]&gt;xwmax)&amp;&amp;(b[i+1][0]&gt;xwmax) )   flag=3;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>switch(flag)</p>
<p>{</p>
<p>case 0 :</p>
<p>x=xwmax;</p>
<p>if(dy!=0)</p>
<p>y=(int)(b[i][1]+m*(x-b[i][0]));</p>
<p>else</p>
<p>y=b[i][1];</p>
<p>&nbsp;</p>
<p>c[p][0]=x;</p>
<p>c[p][1]=y;</p>
<p>p++;</p>
<p>c[p][0]=b[i+1][0];</p>
<p>c[p][1]=b[i+1][1];</p>
<p>p++;</p>
<p>break;</p>
<p>&nbsp;</p>
<p>case 1 :</p>
<p>c[p][0]=b[i+1][0];</p>
<p>c[p][1]=b[i+1][1];</p>
<p>p++;</p>
<p>break;</p>
<p>&nbsp;</p>
<p>case 2 :</p>
<p>x=xwmax;</p>
<p>if(dy!=0)</p>
<p>y=(int)(b[i][1]+m*(x-b[i][0]));</p>
<p>else</p>
<p>y=b[i][1];</p>
<p>&nbsp;</p>
<p>c[p][0]=x;</p>
<p>c[p][1]=y;</p>
<p>p++;</p>
<p>}</p>
<p>}/*-for()-*/</p>
<p>&nbsp;</p>
<p>c[p][0]=c[0][0];</p>
<p>c[p][1]=c[0][1];</p>
<p>&nbsp;</p>
<p>cleardevice();</p>
<p>setcolor(35);</p>
<p>rectangle(xwmin,ymax-ywmin,xwmax,ymax-ywmax);</p>
<p>setcolor(63);</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;p;i++)</p>
<p>{</p>
<p>line(c[i][0],ymax-c[i][1],c[i+1][0],ymax-c[i+1][1]);</p>
<p>getch();</p>
<p>}</p>
<p>getch();</p>
<p>}</p>
<p>clip_bottom(int c[10][10],int d[10][10])</p>
<p>{</p>
<p>&nbsp;</p>
<p>n=p; p=0; m=0;</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;n;i++)</p>
<p>{</p>
<p>dy=c[i+1][1]-c[i][1];</p>
<p>dx=c[i+1][0]-c[i][0];</p>
<p>&nbsp;</p>
<p>if((dx!=0)&amp;&amp;(dy!=0))</p>
<p>{</p>
<p>m=(dy/dx);</p>
<p>}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>if((c[i][1]&lt;ywmin)&amp;&amp;(c[i+1][1]&gt;=ywmin) )  flag=0;</p>
<p>if((c[i][1]&gt;=ywmin)&amp;&amp;(c[i+1][1]&gt;=ywmin) ) flag=1;</p>
<p>if((c[i][1]&gt;=ywmin)&amp;&amp;(c[i+1][1]&lt;ywmin) )  flag=2;</p>
<p>if((c[i][1]&lt;ywmin)&amp;&amp;(c[i+1][1]&lt;ywmin) )   flag=3;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>switch(flag)</p>
<p>{</p>
<p>&nbsp;</p>
<p>case 0 :</p>
<p>y=ywmin;</p>
<p>if(dx!=0)</p>
<p>x=abs((int)(c[i][0]+(1/m)*(y-c[i][1])));</p>
<p>else</p>
<p>x=c[i][0];</p>
<p>&nbsp;</p>
<p>d[p][0]=x;</p>
<p>d[p][1]=y;</p>
<p>p++;</p>
<p>d[p][0]=c[i+1][0];</p>
<p>d[p][1]=c[i+1][1];</p>
<p>p++;</p>
<p>break;</p>
<p>&nbsp;</p>
<p>case 1 :</p>
<p>d[p][0]=c[i+1][0];</p>
<p>d[p][1]=c[i+1][1];</p>
<p>p++;</p>
<p>break;</p>
<p>&nbsp;</p>
<p>case 2 :</p>
<p>y=ywmin;</p>
<p>if(dx!=0)</p>
<p>x=abs((int)(c[i][0]+(1/m)*(y-c[i][1])));</p>
<p>else</p>
<p>x=c[i][0];</p>
<p>&nbsp;</p>
<p>d[p][0]=x;</p>
<p>d[p][1]=y;</p>
<p>p++;</p>
<p>}</p>
<p>}/*-for()-*/</p>
<p>&nbsp;</p>
<p>d[p][0]=d[0][0];</p>
<p>d[p][1]=d[0][1];</p>
<p>&nbsp;</p>
<p>cleardevice();</p>
<p>setcolor(35);</p>
<p>rectangle(xwmin,ymax-ywmin,xwmax,ymax-ywmax);</p>
<p>setcolor(63);</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;p;i++)</p>
<p>{</p>
<p>line(d[i][0],ymax-d[i][1],d[i+1][0],ymax-d[i+1][1]);</p>
<p>getch();</p>
<p>}</p>
<p>getch();</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>}</p>
<p>clip_top(int d[10][10],int e[10][10])</p>
<p>{</p>
<p>&nbsp;</p>
<p>n=p;</p>
<p>p=0;</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;n;i++)</p>
<p>{</p>
<p>&nbsp;</p>
<p>dy=d[i+1][1]-d[i][1];</p>
<p>dx=d[i+1][0]-d[i][0];</p>
<p>&nbsp;</p>
<p>if((dx!=0)&amp;&amp;(dy!=0))</p>
<p>{</p>
<p>m=(dy/dx);</p>
<p>}</p>
<p>&nbsp;</p>
<p>if((d[i][1]&gt;ywmax)&amp;&amp;(d[i+1][1]&lt;=ywmax) )  flag=0;</p>
<p>if((d[i][1]&lt;=ywmax)&amp;&amp;(d[i+1][1]&lt;=ywmax) ) flag=1;</p>
<p>if((d[i][1]&lt;=ywmax)&amp;&amp;(d[i+1][1]&gt;ywmax) )  flag=2;</p>
<p>if((d[i][1]&gt;ywmax)&amp;&amp;(d[i+1][1]&gt;ywmax) )   flag=3;</p>
<p>&nbsp;</p>
<p>switch(flag)</p>
<p>{</p>
<p>case 0 :</p>
<p>y=ywmax;</p>
<p>if(dx!=0)</p>
<p>x=abs((int)(d[i][0]+(1/m)*(y-d[i][1])));</p>
<p>else</p>
<p>x=d[i][0];</p>
<p>&nbsp;</p>
<p>e[p][0]=x;</p>
<p>e[p][1]=y;</p>
<p>p++;</p>
<p>e[p][0]=d[i+1][0];</p>
<p>e[p][1]=d[i+1][1];</p>
<p>p++;</p>
<p>break;</p>
<p>&nbsp;</p>
<p>case 1 :</p>
<p>e[p][0]=d[i+1][0];</p>
<p>e[p][1]=d[i+1][1];</p>
<p>p++;</p>
<p>break;</p>
<p>&nbsp;</p>
<p>case 2 :</p>
<p>y=ywmax;</p>
<p>if(dx!=0)</p>
<p>x=abs((int)(d[i][0]+(1/m)*(y-d[i][1])));</p>
<p>else</p>
<p>x=d[i][0];</p>
<p>&nbsp;</p>
<p>e[p][0]=x;</p>
<p>e[p][1]=y;</p>
<p>p++;</p>
<p>}</p>
<p>}/*-for()-*/</p>
<p>&nbsp;</p>
<p>e[p][0]=e[0][0];</p>
<p>e[p][1]=e[0][1];</p>
<p>cleardevice();</p>
<p>setcolor(35);</p>
<p>rectangle(xwmin,ymax-ywmin,xwmax,ymax-ywmax);</p>
<p>setcolor(63);</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;p;i++)</p>
<p>{</p>
<p>line(e[i][0],ymax-e[i][1],e[i+1][0],ymax-e[i+1][1]);</p>
<p>getch();</p>
<p>}</p>
<p>getch(); getch();</p>
<p>}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itabatch2011.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itabatch2011.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itabatch2011.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itabatch2011.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/itabatch2011.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/itabatch2011.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/itabatch2011.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/itabatch2011.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itabatch2011.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itabatch2011.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itabatch2011.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itabatch2011.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itabatch2011.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itabatch2011.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=12&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://itabatch2011.wordpress.com/2009/11/07/sutherland-hodgman-polygon-clipping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a682936a76085a6dc36ec2c27a2228f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TIA!</media:title>
		</media:content>
	</item>
		<item>
		<title>COHEN SUTHERLAND and Liang-Barsky Line Clipping</title>
		<link>http://itabatch2011.wordpress.com/2009/11/07/cohen-sutherland-line-clipping/</link>
		<comments>http://itabatch2011.wordpress.com/2009/11/07/cohen-sutherland-line-clipping/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:14:22 +0000</pubDate>
		<dc:creator>TIA!</dc:creator>
				<category><![CDATA[cgvrs]]></category>
		<category><![CDATA[COHEN]]></category>
		<category><![CDATA[SUTHERLAND]]></category>
		<category><![CDATA[LINE]]></category>
		<category><![CDATA[CLIPPING]]></category>
		<category><![CDATA[Liang]]></category>
		<category><![CDATA[Barsky]]></category>

		<guid isPermaLink="false">http://itabatch2011.wordpress.com/?p=9</guid>
		<description><![CDATA[//COHEN SUTHERLAND LINE CLIPPING ALGO #include&#60;stdio.h&#62; #include&#60;conio.h&#62; #include&#60;graphics.h&#62; int xwmin=100,ywmin=100,xwmax=300,ywmax=300,x,y; float dx,dy,m; void main() { int gd=DETECT,gm,x1,y1,x2,y2,flag=0; printf(&#8220;Enter the co-ordinates of line:&#8221;); scanf(&#8220;%d %d %d %d&#8221;,&#38;x1,&#38;y1,&#38;x2,&#38;y2); initgraph(&#38;gd,&#38;gm,&#8221;c:\\tc\\bgi &#8220;); rectangle(xwmin,ywmin,xwmax,ywmax); line(x1,y1,x2,y2); getch(); cleardevice(); rectangle(xwmin,ywmin,xwmax,ywmax); if((y1&#62;ywmax)&#38;&#38;(y2&#62;ywmax)) flag=1; if((y1&#60;ywmin)&#38;&#38;(y2&#60;ywmin)) flag=1; if((x1&#62;xwmax)&#38;&#38;(x2&#62;xwmax)) flag=1; if((x1&#60;xwmin)&#38;&#38;(x2&#60;xwmin)) flag=1; if(flag==0) { dy=y2-y1; dx=x2-x1; if(dx==0) dx=1; m=dy/dx; x=x1; y=y1; encode(); moveto(x,y); x=x2; y=y2; encode(); [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=9&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>//COHEN SUTHERLAND LINE CLIPPING ALGO</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;conio.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>int xwmin=100,ywmin=100,xwmax=300,ywmax=300,x,y;</p>
<p>float dx,dy,m;</p>
<p>void main()</p>
<p>{</p>
<p>int gd=DETECT,gm,x1,y1,x2,y2,flag=0;</p>
<p>printf(&#8220;Enter the co-ordinates of line:&#8221;);</p>
<p>scanf(&#8220;%d %d %d %d&#8221;,&amp;x1,&amp;y1,&amp;x2,&amp;y2);</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tc\\bgi &#8220;);</p>
<p>rectangle(xwmin,ywmin,xwmax,ywmax);</p>
<p>line(x1,y1,x2,y2);</p>
<p>getch();</p>
<p>cleardevice();</p>
<p>rectangle(xwmin,ywmin,xwmax,ywmax);</p>
<p>if((y1&gt;ywmax)&amp;&amp;(y2&gt;ywmax)) flag=1;</p>
<p>if((y1&lt;ywmin)&amp;&amp;(y2&lt;ywmin)) flag=1;</p>
<p>if((x1&gt;xwmax)&amp;&amp;(x2&gt;xwmax)) flag=1;</p>
<p>if((x1&lt;xwmin)&amp;&amp;(x2&lt;xwmin)) flag=1;</p>
<p>if(flag==0)</p>
<p>{</p>
<p>dy=y2-y1;</p>
<p>dx=x2-x1;</p>
<p>if(dx==0)</p>
<p>dx=1;</p>
<p>m=dy/dx;</p>
<p>x=x1;</p>
<p>y=y1;</p>
<p>encode();</p>
<p>moveto(x,y);</p>
<p>x=x2;</p>
<p>y=y2;</p>
<p>encode();</p>
<p>if(x&gt;=xwmin&amp;&amp;x&lt;=xwmax&amp;&amp;y&gt;=ywmin&amp;&amp;y&lt;=ywmax)</p>
<p>lineto(x,y);</p>
<p>}</p>
<p>getch();</p>
<p>closegraph();</p>
<p>}</p>
<p>encode()</p>
<p>{</p>
<p>if(x&lt;xwmin)</p>
<p>{</p>
<p>y=y+(xwmin-x)*m;</p>
<p>x=xwmin;</p>
<p>}</p>
<p>if(x&gt;xwmax)</p>
<p>{</p>
<p>y=y+(xwmax-x)*m;</p>
<p>x=xwmax;</p>
<p>}</p>
<p>if(y&lt;ywmin)</p>
<p>{</p>
<p>if(m!=0) x=x+(ywmin-y)/m;</p>
<p>else x=x+(ywmin-y);</p>
<p>y=ywmin;</p>
<p>}</p>
<p>if(y&gt;ywmax)</p>
<p>{</p>
<p>if(m!=0) x=x+(ywmax-y)/m;</p>
<p>else x=x+(ywmax-y);</p>
<p>y=ywmax;</p>
<p>}</p>
<p>}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>///////////////////////////////////////////////////////////////</p>
<p>//Program for Liang-Barsky Line Clipping Algorithm</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;conio.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>#include&lt;math.h&gt;</p>
<p>void main()</p>
<p>{</p>
<p>int i,gd=DETECT,gm;</p>
<p>int x1,y1,x2,y2,xmin,xmax,ymin,ymax,xx1,xx2,yy1,yy2;</p>
<p>float t1,t2,p[4],q[4],temp;</p>
<p>printf(&#8220;Enter line co-ordinates : &#8220;);</p>
<p>scanf(&#8220;%d %d %d %d&#8221;,&amp;x1,&amp;y1,&amp;x2,&amp;y2);</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tc\\bgi&#8221;);</p>
<p>/*x1=10;</p>
<p>y1=10;</p>
<p>x2=60;</p>
<p>y2=30;*/</p>
<p>xmin=100;</p>
<p>xmax=300;</p>
<p>ymin=100;</p>
<p>ymax=300;</p>
<p>line(x1,y1,x2,y2);</p>
<p>rectangle(xmin,ymin,xmax,ymax);</p>
<p>getch();</p>
<p>cleardevice();</p>
<p>rectangle(xmin,ymin,xmax,ymax);</p>
<p>p[0]=-(x2-x1);</p>
<p>p[1]=(x2-x1);</p>
<p>p[2]=-(y2-y1);</p>
<p>p[3]=(y2-y1);</p>
<p>q[0]=(x1-xmin);</p>
<p>q[1]=(xmax-x1);</p>
<p>q[2]=(y1-ymin);</p>
<p>q[3]=(ymax-y1);</p>
<p>&nbsp;</p>
<p>for(i=0;i&lt;4;i++)</p>
<p>{</p>
<p>if(p[i]==0)</p>
<p>{</p>
<p>printf(&#8220;Line is parallel to one of the clipping boundary&#8221;);</p>
<p>if(q[i]&gt;=0)</p>
<p>{</p>
<p>if(i&lt;2)</p>
<p>{</p>
<p>if(y1&lt;ymin)</p>
<p>y1=ymin;</p>
<p>if(y2&gt;ymax)</p>
<p>y2=ymax;</p>
<p>line(x1,y1,x2,y2);</p>
<p>}</p>
<p>if(i&gt;1)</p>
<p>{</p>
<p>if(x1&lt;xmin)</p>
<p>x1=xmin;</p>
<p>if(x2&gt;xmax)</p>
<p>x2=xmax;</p>
<p>line(x1,y1,x2,y2);</p>
<p>}</p>
<p>}</p>
<p>getch();</p>
<p>return(0);</p>
<p>}</p>
<p>}</p>
<p>t1=0;</p>
<p>t2=1;</p>
<p>for(i=0;i&lt;4;i++)</p>
<p>{</p>
<p>temp=q[i]/p[i];</p>
<p>if(p[i]&lt;0)</p>
<p>{</p>
<p>if(t1&lt;=temp)</p>
<p>t1=temp;</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>if(t2&gt;temp)</p>
<p>t2=temp;</p>
<p>}</p>
<p>}</p>
<p>if(t1&lt;t2)</p>
<p>{</p>
<p>xx1=x1+t1*p[1];</p>
<p>xx2=x1+t2*p[1];</p>
<p>yy1=y1+t1*p[3];</p>
<p>yy2=y1+t2*p[3];</p>
<p>line(xx1,yy1,xx2,yy2);</p>
<p>}</p>
<p>getch();</p>
<p>closegraph();</p>
<p>}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itabatch2011.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itabatch2011.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itabatch2011.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itabatch2011.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/itabatch2011.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/itabatch2011.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/itabatch2011.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/itabatch2011.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itabatch2011.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itabatch2011.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itabatch2011.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itabatch2011.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itabatch2011.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itabatch2011.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=9&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://itabatch2011.wordpress.com/2009/11/07/cohen-sutherland-line-clipping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a682936a76085a6dc36ec2c27a2228f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TIA!</media:title>
		</media:content>
	</item>
		<item>
		<title>2d and 3d</title>
		<link>http://itabatch2011.wordpress.com/2009/11/07/2d-and-3d/</link>
		<comments>http://itabatch2011.wordpress.com/2009/11/07/2d-and-3d/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:05:20 +0000</pubDate>
		<dc:creator>TIA!</dc:creator>
				<category><![CDATA[cgvrs]]></category>
		<category><![CDATA[2d]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[transformation]]></category>

		<guid isPermaLink="false">http://itabatch2011.wordpress.com/?p=7</guid>
		<description><![CDATA[PROGRAM TO IMPLEMENT TRANSLATION,ROTATION AND SCALING */ #include&#60;stdio.h&#62; #include&#60;conio.h&#62; #include&#60;stdlib.h&#62; #include&#60;graphics.h&#62; #include&#60;math.h&#62; &#160; #define OX maxx/2 #define OY maxy/2 #define MAX 10 int num=0; int maxx,maxy; double result[3][MAX]; void drawobject(double[3][MAX]); void translate(double[3][MAX]); void scale(double[3][MAX]); void rotate(double[3][MAX]); void arrmult(double[3][MAX],double[3][3],double[3][MAX]); &#160; void main() { double vertices[3][MAX]; int gd=DETECT,gm; int i,choice; char ch; initgraph(&#38;gd,&#38;gm,&#8221;c:\\tc\\bgi&#8221;); cleardevice(); maxx=getmaxx(); maxy=getmaxy(); setcolor(WHITE); [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=7&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>PROGRAM TO IMPLEMENT TRANSLATION,ROTATION AND SCALING */</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;conio.h&gt;</p>
<p>#include&lt;stdlib.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>#include&lt;math.h&gt;</p>
<p>&nbsp;</p>
<p>#define OX maxx/2</p>
<p>#define OY maxy/2</p>
<p>#define MAX 10</p>
<p>int num=0;</p>
<p>int maxx,maxy;</p>
<p>double result[3][MAX];</p>
<p>void drawobject(double[3][MAX]);</p>
<p>void translate(double[3][MAX]);</p>
<p>void scale(double[3][MAX]);</p>
<p>void rotate(double[3][MAX]);</p>
<p>void arrmult(double[3][MAX],double[3][3],double[3][MAX]);</p>
<p>&nbsp;</p>
<p>void main()</p>
<p>{</p>
<p>double vertices[3][MAX];</p>
<p>int gd=DETECT,gm;</p>
<p>int i,choice;</p>
<p>char ch;</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tc\\bgi&#8221;);</p>
<p>cleardevice();</p>
<p>maxx=getmaxx();</p>
<p>maxy=getmaxy();</p>
<p>setcolor(WHITE);</p>
<p>printf(&#8220;\n\tEnter the details of original object :&#8221;);</p>
<p>printf(&#8220;\n\tEnter the total number of vertices :\t&#8221;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;num);</p>
<p>for(i=0;i&lt;num;i++)</p>
<p>{</p>
<p>printf(&#8220;\n\tEnter the co-ordinates of vertice[%d] :\t&#8221;,i+1);</p>
<p>scanf(&#8220;%lf %lf&#8221;,&amp;vertices[0][i],&amp;vertices[1][i]);</p>
<p>vertices[2][i]=1;</p>
<p>}</p>
<p>cleardevice();</p>
<p>drawobject(vertices);</p>
<p>getch();</p>
<p>cleardevice();</p>
<p>do</p>
<p>{</p>
<p>setlinestyle(DASHED_LINE,1,1);</p>
<p>printf(&#8220;\n\tEnter the choice : &#8220;);</p>
<p>printf(&#8220;\n\t1:TRANSLATION 2:ROTATION 3:SCALE&#8221;);</p>
<p>printf(&#8220;\n\tChoice :\t&#8221;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;choice);</p>
<p>switch(choice)</p>
<p>{</p>
<p>case 1: translate(vertices);</p>
<p>break;</p>
<p>case 2: rotate(vertices);</p>
<p>break;</p>
<p>case 3: scale(vertices);</p>
<p>break;</p>
<p>default:printf(&#8220;\n\tInvalid choice&#8230;.&#8221;);</p>
<p>}</p>
<p>fflush(stdin);</p>
<p>cleardevice();</p>
<p>printf(&#8220;\n\tDo you wish to continue : (y/n)\n\tChoice :\t&#8221;);</p>
<p>scanf(&#8220;%c&#8221;,&amp;ch);</p>
<p>}</p>
<p>while(ch!=&#8217;n'&amp;&amp;ch!=&#8217;N');</p>
<p>getch();</p>
<p>closegraph();</p>
<p>restorecrtmode();</p>
<p>}</p>
<p>&nbsp;</p>
<p>void drawobject(double arr[3][MAX])</p>
<p>{</p>
<p>int i,j;</p>
<p>line(maxx/2,0,maxx/2,maxy);</p>
<p>line(0,maxy/2,maxx,maxy/2);</p>
<p>for(i=0;i&lt;num;i++)</p>
<p>{</p>
<p>j=(i+1)%num;</p>
<p>line(OX+arr[0][i],OY-arr[1][i],OX+arr[0][j],OY-arr[1][j]);</p>
<p>}</p>
<p>}</p>
<p>&nbsp;</p>
<p>void arrmult(double product[3][MAX],double arr1[3][3],double arr2[3][MAX])</p>
<p>{</p>
<p>int i,j,k;</p>
<p>for(i=0;i&lt;3;i++)</p>
<p>for(j=0;j&lt;MAX;j++)</p>
<p>{</p>
<p>product[i][j]=0;</p>
<p>for(k=0;k&lt;3;k++)</p>
<p>product[i][j]+=arr1[i][k]*arr2[k][j];</p>
<p>}</p>
<p>}</p>
<p>&nbsp;</p>
<p>void translate(double arr[3][MAX])</p>
<p>{</p>
<p>int tx,ty;</p>
<p>double tranx[3][3]={1,0,0,0,1,0,0,0,1};</p>
<p>printf(&#8220;\n\tEnter the translation distance along X-axis:\t&#8221;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;tx);</p>
<p>printf(&#8220;\n\tEnter the translation distance along Y-axis:\t&#8221;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;ty);</p>
<p>tranx[0][2]=tx;</p>
<p>tranx[1][2]=ty;</p>
<p>arrmult(result,tranx,arr);</p>
<p>cleardevice();</p>
<p>drawobject(arr);</p>
<p>setlinestyle(SOLID_LINE,1,1);</p>
<p>drawobject(result);</p>
<p>getch();</p>
<p>}</p>
<p>&nbsp;</p>
<p>void scale(double arr[3][MAX])</p>
<p>{</p>
<p>int sx,sy,x,y;</p>
<p>double scale[3][3]={0,0,0,0,0,0,0,0,1};</p>
<p>printf(&#8220;\n\tEnter the scaling magnitude along X-axis:\t&#8221;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;sx);</p>
<p>printf(&#8220;\n\tEnter the scaling magnitude along Y-axis:\t&#8221;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;sy);</p>
<p>printf(&#8220;\n\tEnter the fixed point X &amp; Y coordinates for scaling:\t&#8221;);</p>
<p>scanf(&#8220;%d%d&#8221;,&amp;x,&amp;y);</p>
<p>scale[0][0]=sx;</p>
<p>scale[0][2]=x*(1-sx);</p>
<p>scale[1][1]=sy;</p>
<p>scale[1][2]=y*(1-sy);</p>
<p>arrmult(result,scale,arr);</p>
<p>cleardevice();</p>
<p>drawobject(arr);</p>
<p>setlinestyle(SOLID_LINE,1,1);</p>
<p>drawobject(result);</p>
<p>getch();</p>
<p>}</p>
<p>&nbsp;</p>
<p>void rotate(double arr[3][MAX])</p>
<p>{</p>
<p>int angle,choice,x,y;</p>
<p>double rad;</p>
<p>double rotate[3][3]={0,0,0,0,0,0,0,0,1};</p>
<p>printf(&#8220;\n\tEnter the angle of rotation in degrees:\t&#8221;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;angle);</p>
<p>printf(&#8220;\n\t1.Clockwise Rotation  2. Anti-Clockwise Rotation\n\tEnter Choice :\t&#8221;);</p>
<p>scanf(&#8220;%d&#8221;,&amp;choice);</p>
<p>angle*=(choice==1?-1:1);</p>
<p>printf(&#8220;\n\tEnter the pivot point X &amp; Y coordinates for rotation:\t&#8221;);</p>
<p>scanf(&#8220;%d%d&#8221;,&amp;x,&amp;y);</p>
<p>rad=3.14159*angle/180;</p>
<p>rotate[0][0]=cos(rad);</p>
<p>rotate[0][1]=-1*sin(rad);</p>
<p>rotate[1][0]=sin(rad);</p>
<p>rotate[1][1]=cos(rad);</p>
<p>rotate[0][2]=x*(1-cos(rad))+y*sin(rad);</p>
<p>rotate[1][2]=y*(1-cos(rad))-x*sin(rad);</p>
<p>arrmult(result,rotate,arr);</p>
<p>cleardevice();</p>
<p>drawobject(arr);</p>
<p>setlinestyle(SOLID_LINE,1,1);</p>
<p>drawobject(result);</p>
<p>getch();</p>
<p>}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>A C++ program to implement different 3D transformations such as</p>
<p>* Scaling               * Translation      * Rotation*/</p>
<p>&nbsp;</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;conio.h&gt;</p>
<p>#include&lt;iostream.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>#include&lt;alloc.h&gt;</p>
<p>#include&lt;stdlib.h&gt;</p>
<p>#include&lt;math.h&gt;</p>
<p>#include&lt;dos.h&gt;</p>
<p>int gd=0, gm;</p>
<p>class axes</p>
<p>{</p>
<p>private:                                // Initialiasing data members for axes</p>
<p>int xmx,ymx,yst,xst,zmx,zst;</p>
<p>float xsc,ysc,xstep,ystep,zsc,zstep;</p>
<p>&nbsp;</p>
<p>public:</p>
<p>axes();</p>
<p>void display();</p>
<p>int actx(int tmx,int tmy,int tmz)</p>
<p>{</p>
<p>return 320+((xsc*tmx)-(zsc*tmz/2))+tmy-tmy;</p>
<p>}</p>
<p>int acty(int tmx,int tmy,int tmz)</p>
<p>{</p>
<p>return 255-((ysc*tmy)-(zsc*tmz/2))+tmx-tmx;</p>
<p>}</p>
<p>}cl;</p>
<p>axes::axes()</p>
<p>{</p>
<p>xmx=280;</p>
<p>ymx=200;</p>
<p>zmx=400;</p>
<p>&nbsp;</p>
<p>xsc=280.0/xmx;</p>
<p>xstep=10.0*xmx/280.0;</p>
<p>xst=ceil(xstep);</p>
<p>&nbsp;</p>
<p>ysc=200.0/ymx;</p>
<p>ystep=10.0*ymx/200.0;</p>
<p>yst=ceil(ystep);</p>
<p>&nbsp;</p>
<p>zsc=400.0/zmx;</p>
<p>zstep=10.0*zmx/400.0;</p>
<p>zst=ceil(zstep);</p>
<p>}</p>
<p>/*Member Name            :               display().</p>
<p>Purpose                               :               To display the X,Y &amp; Z-axis*/</p>
<p>void axes::display()</p>
<p>{</p>
<p>setcolor(CYAN);</p>
<p>line(25,255,615,255);</p>
<p>line(320,25,320,455);</p>
<p>line(actx(0,0,zmx),acty(0,0,zmx),actx(0,0,-zmx),acty(0,0,-zmx));</p>
<p>outtextxy(325,255,&#8221;0&#8243;);</p>
<p>settextstyle(3,0,1);</p>
<p>outtextxy(620,240,&#8221;X&#8221;);</p>
<p>outtextxy(323,20,&#8221;Y&#8221;);</p>
<p>outtextxy(actx(0,0,zmx)+3,acty(0,0,zmx)+3,&#8221;Z&#8221;);</p>
<p>settextstyle(0,0,0);</p>
<p>}</p>
<p>class polygon</p>
<p>{</p>
<p>private:                // Initialiasing data members</p>
<p>float cube[8][4];</p>
<p>public:                   // Declaring all transformation functions</p>
<p>void accept();</p>
<p>void display(int);</p>
<p>void scaling();</p>
<p>void scale(float,float,float);</p>
<p>void translation();</p>
<p>void trans(int,int,int);</p>
<p>void rotate();</p>
<p>void x_rotat(float);</p>
<p>void y_rotat(float);</p>
<p>void z_rotat(float);</p>
<p>int plotx(int i)</p>
<p>{</p>
<p>return cl.actx(cube[i][0],cube[i][1],cube[i][2]);</p>
<p>}</p>
<p>int ploty(int i)</p>
<p>{</p>
<p>return cl.acty(cube[i][0],cube[i][1],cube[i][2]);</p>
<p>}</p>
<p>polygon operator * (float [4][4]);</p>
<p>}p1;</p>
<p>/*Member Name            :               display(int).</p>
<p>Purpose                               :               To display a 3D cube with specified color*/</p>
<p>void polygon::display(int color)</p>
<p>{</p>
<p>setcolor(color);</p>
<p>line(plotx(0),ploty(0),plotx(1),ploty(1));</p>
<p>line(plotx(1),ploty(1),plotx(3),ploty(3));</p>
<p>line(plotx(3),ploty(3),plotx(2),ploty(2));</p>
<p>line(plotx(2),ploty(2),plotx(0),ploty(0));</p>
<p>&nbsp;</p>
<p>line(plotx(4),ploty(4),plotx(5),ploty(5));</p>
<p>line(plotx(5),ploty(5),plotx(7),ploty(7));</p>
<p>line(plotx(7),ploty(7),plotx(6),ploty(6));</p>
<p>line(plotx(6),ploty(6),plotx(4),ploty(4));</p>
<p>&nbsp;</p>
<p>line(plotx(0),ploty(0),plotx(4),ploty(4));</p>
<p>line(plotx(1),ploty(1),plotx(5),ploty(5));</p>
<p>line(plotx(2),ploty(2),plotx(6),ploty(6));</p>
<p>line(plotx(3),ploty(3),plotx(7),ploty(7));</p>
<p>}</p>
<p>/*Member Name            :               accept().</p>
<p>Purpose                               :               To accept the 3D only one corner point of an object from the user and generate all point of object to display on the screen.*/</p>
<p>void polygon::accept()</p>
<p>{</p>
<p>int xc,yc,zc;</p>
<p>cout&lt;&lt;&#8221;\n\t\t 3-D TRANSFORMATIONS&#8221;;</p>
<p>cout&lt;&lt;&#8221;\n\tenter the co-ordinates of the corner of the cube&#8230;&#8221;;</p>
<p>cout&lt;&lt;&#8221;\n\n\tx :              &#8220;;</p>
<p>cin&gt;&gt;xc;</p>
<p>cout&lt;&lt;&#8221;\n\ty :   &#8220;;</p>
<p>cin&gt;&gt;yc;</p>
<p>cout&lt;&lt;&#8221;\n\tz :   &#8220;;</p>
<p>cin&gt;&gt;zc;</p>
<p>int sd;</p>
<p>cout&lt;&lt;&#8221;\n\tEnter the length of each side : &#8220;;</p>
<p>cin&gt;&gt;sd;</p>
<p>for(int i=0;i&lt;8;i++)</p>
<p>{</p>
<p>cube[i][3] =1;</p>
<p>}</p>
<p>cube[0][0] = xc;</p>
<p>cube[0][1] = yc;</p>
<p>cube[0][2] = zc;</p>
<p>&nbsp;</p>
<p>cube[1][0] = xc;</p>
<p>cube[1][1] = yc;</p>
<p>cube[1][2] = zc+sd;</p>
<p>&nbsp;</p>
<p>cube[2][0] = xc;</p>
<p>cube[2][1] = yc+sd;</p>
<p>cube[2][2] = zc;</p>
<p>&nbsp;</p>
<p>cube[3][0] = xc;</p>
<p>cube[3][1] = yc+sd;</p>
<p>cube[3][2] = zc+sd;</p>
<p>&nbsp;</p>
<p>cube[4][0] = xc+sd;</p>
<p>cube[4][1] = yc;</p>
<p>cube[4][2] = zc;</p>
<p>&nbsp;</p>
<p>cube[5][0] = xc+sd;</p>
<p>cube[5][1] = yc;</p>
<p>cube[5][2] = zc+sd;</p>
<p>&nbsp;</p>
<p>cube[6][0] = xc+sd;</p>
<p>cube[6][1] = yc+sd;</p>
<p>cube[6][2] = zc;</p>
<p>&nbsp;</p>
<p>cube[7][0] = xc+sd;</p>
<p>cube[7][1] = yc+sd;</p>
<p>cube[7][2] = zc+sd;</p>
<p>}</p>
<p>/*Member Name            :               operator* (float).</p>
<p>Purpose                               :               To multiply two matrices by using operator overloading concept*/</p>
<p>polygon polygon::operator* (float b[4][4])</p>
<p>{</p>
<p>polygon c;</p>
<p>for(int i=0;i&lt;8;i++)</p>
<p>for(int j=0;j&lt;4;j++)</p>
<p>{</p>
<p>c.cube[i][j]=0;</p>
<p>for(int k=0;k&lt;4;k++)</p>
<p>c.cube[i][j]+=cube[i][k]*b[k][j];</p>
<p>delay(1);</p>
<p>}</p>
<p>return c;</p>
<p>}</p>
<p>/*Member Name            :               scaling().</p>
<p>Purpose                               :               To accept the scaling factors to perform scaling transformation.*/</p>
<p>void polygon::scaling()</p>
<p>{</p>
<p>float sx,sy,sz;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                                                &#8220;</p>
<p>&#8220;                                                                                                                                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221; X scaling factor :&#8221;;</p>
<p>cin&gt;&gt;sx;</p>
<p>&nbsp;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                                                &#8220;</p>
<p>&#8220;                                                                                                                                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221; Y scaling factor :&#8221;;</p>
<p>cin&gt;&gt;sy;</p>
<p>&nbsp;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                                                &#8220;</p>
<p>&#8220;                                                                                                                                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221; Z scaling factor :&#8221;;</p>
<p>cin&gt;&gt;sz;</p>
<p>scale(sx,sy,sz);</p>
<p>getch();</p>
<p>gotoxy(1,3);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                &#8220;;</p>
<p>gotoxy(1,4);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                &#8220;;</p>
<p>gotoxy(1,5);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                &#8220;;</p>
<p>}</p>
<p>&nbsp;</p>
<p>/*Member Name            :               scale().</p>
<p>Purpose                               :               To create scaling matrix and multiply it with object to perform scaling     transformation.*/</p>
<p>void polygon::scale(float sx,float sy, float sz)</p>
<p>{</p>
<p>float sclmt[4][4];</p>
<p>&nbsp;</p>
<p>sclmt[0][0]=sx;</p>
<p>sclmt[0][1]=0;</p>
<p>sclmt[0][2]=0;</p>
<p>sclmt[0][3]=0;</p>
<p>&nbsp;</p>
<p>sclmt[1][0]=0;</p>
<p>sclmt[1][1]=sy;</p>
<p>sclmt[1][2]=0;</p>
<p>sclmt[1][3]=0;</p>
<p>&nbsp;</p>
<p>sclmt[2][0]=0;</p>
<p>sclmt[2][1]=0;</p>
<p>sclmt[2][2]=sz;</p>
<p>sclmt[2][3]=0;</p>
<p>&nbsp;</p>
<p>sclmt[3][0]=0;</p>
<p>sclmt[3][1]=0;</p>
<p>sclmt[3][2]=0;</p>
<p>sclmt[3][3]=1;</p>
<p>&nbsp;</p>
<p>cleardevice();</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;scaling results&#8230;.&#8221;;</p>
<p>cl.display();</p>
<p>&nbsp;</p>
<p>p1=p1*sclmt;</p>
<p>display(2);</p>
<p>gotoxy(1,3);</p>
<p>cout&lt;&lt;&#8221;sx =  &#8220;&lt;&lt;sx;</p>
<p>gotoxy(1,4);</p>
<p>cout&lt;&lt;&#8221;sy =  &#8220;&lt;&lt;sy;</p>
<p>gotoxy(1,5);</p>
<p>cout&lt;&lt;&#8221;sz =  &#8220;&lt;&lt;sz;</p>
<p>}</p>
<p>/*Member Name            :               translation().</p>
<p>Purpose                               :               To accept the translation factors to perform translation.*/</p>
<p>void polygon::translation()</p>
<p>{</p>
<p>float tx,ty,tz;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                                                &#8220;</p>
<p>&#8220;                                                                                                                                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221; X Translation factor        :&#8221;;</p>
<p>cin&gt;&gt;tx;</p>
<p>&nbsp;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                                                &#8220;</p>
<p>&#8220;                                                                                                                                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221; Y translation factor         :&#8221;;</p>
<p>cin&gt;&gt;ty;</p>
<p>&nbsp;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                                                &#8220;</p>
<p>&#8220;                                                                                                                                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221; Z Translation factor        :&#8221;;</p>
<p>cin&gt;&gt;tz;</p>
<p>&nbsp;</p>
<p>trans(tx,ty,tz);</p>
<p>getch();</p>
<p>gotoxy(1,3);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                &#8220;;</p>
<p>gotoxy(1,4);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                &#8220;;</p>
<p>gotoxy(1,5);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                &#8220;;</p>
<p>}</p>
<p>/*Member Name            :               trans(int,int,int).</p>
<p>Purpose                               :               To create translation matrix and multiply it</p>
<p>with object to perform translation.*/</p>
<p>void polygon::trans(int tx,int ty, int tz)</p>
<p>{</p>
<p>float tr[4][4];</p>
<p>&nbsp;</p>
<p>tr[0][0]=1;</p>
<p>tr[0][1]=0;</p>
<p>tr[0][2]=0;</p>
<p>tr[0][3]=0;</p>
<p>&nbsp;</p>
<p>tr[1][0]=0;</p>
<p>tr[1][1]=1;</p>
<p>tr[1][2]=0;</p>
<p>tr[1][3]=0;</p>
<p>&nbsp;</p>
<p>tr[2][0]=0;</p>
<p>tr[2][1]=0;</p>
<p>tr[2][2]=1;</p>
<p>tr[2][3]=0;</p>
<p>&nbsp;</p>
<p>tr[3][0]=tx;</p>
<p>tr[3][1]=ty;</p>
<p>tr[3][2]=tz;</p>
<p>tr[3][3]=1;</p>
<p>&nbsp;</p>
<p>cleardevice();</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;Translation results&#8230;.&#8221;;</p>
<p>cl.display();</p>
<p>&nbsp;</p>
<p>p1=p1*tr;</p>
<p>display(4);</p>
<p>gotoxy(1,3);</p>
<p>cout&lt;&lt;&#8221;tx =  &#8220;&lt;&lt;tx;</p>
<p>gotoxy(1,4);</p>
<p>cout&lt;&lt;&#8221;ty =  &#8220;&lt;&lt;ty;</p>
<p>gotoxy(1,5);</p>
<p>cout&lt;&lt;&#8221;tz =  &#8220;&lt;&lt;tz;</p>
<p>}</p>
<p>/*Member Name            :               rotate().</p>
<p>Purpose                               :               To select rotation about a either X,Y or Z-axis                                                                      with specified angle.*/</p>
<p>void polygon::rotate()</p>
<p>{</p>
<p>int ch;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                                &#8220;</p>
<p>&#8220;                                                                                                                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                1=&gt; X                                     2=&gt; Y                                     3=&gt; Z     :&#8221;;</p>
<p>cin&gt;&gt;ch;</p>
<p>float angle;</p>
<p>&nbsp;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                                                                                                                &#8220;</p>
<p>&#8220;                                                                                                                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                Rotation angle : &#8220;;</p>
<p>cin&gt;&gt;angle;</p>
<p>angle*=M_PI/180;</p>
<p>switch(ch)</p>
<p>&nbsp;</p>
<p>{</p>
<p>case 1 : x_rotat(angle);</p>
<p>break;</p>
<p>case 2 : y_rotat(angle);</p>
<p>break;</p>
<p>case 3 : z_rotat(angle);</p>
<p>break;</p>
<p>}</p>
<p>}</p>
<p>/*Member Name            :               x_rotat(float).</p>
<p>Purpose                               :               To perform rotation about X-axis withspecified angle.*/</p>
<p>void polygon::x_rotat(float angle)</p>
<p>{</p>
<p>float rt[4][4];</p>
<p>rt[0][0]=1;</p>
<p>rt[0][1]=0;</p>
<p>rt[0][2]=0;</p>
<p>rt[0][3]=0;</p>
<p>&nbsp;</p>
<p>rt[1][0]=0;</p>
<p>rt[1][1]=cos(angle);</p>
<p>rt[1][2]=-sin(angle);</p>
<p>rt[1][3]=0;</p>
<p>&nbsp;</p>
<p>rt[2][0]=0;</p>
<p>rt[2][1]=sin(angle);</p>
<p>rt[2][2]=cos(angle);</p>
<p>rt[2][3]=0;</p>
<p>&nbsp;</p>
<p>rt[3][0]=0;</p>
<p>rt[3][1]=0;</p>
<p>rt[3][2]=0;</p>
<p>rt[3][3]=1;</p>
<p>cleardevice();</p>
<p>p1=p1*rt;</p>
<p>cleardevice();</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;Rotating about X-axis&#8230;.&#8221;;</p>
<p>cl.display();</p>
<p>&nbsp;</p>
<p>display(2);</p>
<p>delay(5000);</p>
<p>}</p>
<p>/*Member Name            :               y_rotat(float).</p>
<p>Purpose                               :               To perform rotation about Y-axis withspecified angle.*/</p>
<p>void polygon::y_rotat(float angle)</p>
<p>{</p>
<p>float rt[4][4];</p>
<p>rt[0][0]=cos(angle);</p>
<p>rt[0][1]=0;</p>
<p>rt[0][2]=sin(angle);</p>
<p>rt[0][3]=0;</p>
<p>rt[1][0]=0;</p>
<p>rt[1][1]=1;</p>
<p>rt[1][2]=0;</p>
<p>rt[1][3]=0;</p>
<p>rt[2][0]=-sin(angle);</p>
<p>rt[2][1]=0;</p>
<p>rt[2][2]=cos(angle);</p>
<p>rt[2][3]=0;</p>
<p>rt[3][0]=0;</p>
<p>rt[3][1]=0;</p>
<p>rt[3][2]=0;</p>
<p>rt[3][3]=1;</p>
<p>cleardevice();</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;Rotating about Y-axis&#8230;.&#8221;;</p>
<p>cl.display();</p>
<p>p1=p1*rt;</p>
<p>display(2);</p>
<p>delay(5000);</p>
<p>}</p>
<p>/*Member Name            :               z_rotat(float).</p>
<p>Purpose                               :               To perform rotation about Z-axis with specified angle.*/</p>
<p>void polygon::z_rotat(float angle)</p>
<p>{</p>
<p>float rt[4][4];</p>
<p>rt[0][0]=cos(angle);</p>
<p>rt[0][1]=-sin(angle);</p>
<p>rt[0][2]=0;</p>
<p>rt[0][3]=0;</p>
<p>rt[1][0]=sin(angle);</p>
<p>rt[1][1]=cos(angle);</p>
<p>rt[1][2]=0;</p>
<p>rt[1][3]=0;</p>
<p>rt[2][0]=0;</p>
<p>rt[2][1]=0;</p>
<p>rt[2][2]=1;</p>
<p>rt[2][3]=0;</p>
<p>rt[3][0]=0;</p>
<p>rt[3][1]=0;</p>
<p>rt[3][2]=0;</p>
<p>rt[3][3]=1;</p>
<p>cleardevice();</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;Rotating about Z-axis&#8230;.&#8221;;</p>
<p>cl.display();</p>
<p>p1=p1*rt;</p>
<p>display(2);</p>
<p>delay(5000);</p>
<p>}</p>
<p>main()</p>
<p>{</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tcplus\\bgi&#8221;);</p>
<p>p1.accept();</p>
<p>cleardevice();</p>
<p>cl.display();</p>
<p>p1.display(2);</p>
<p>int choice;</p>
<p>while(1)</p>
<p>{</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;                                &#8220;                              &#8220;                              &#8220;;</p>
<p>gotoxy(1,1);</p>
<p>cout&lt;&lt;&#8221;1.scaling               2.translation       3. Rotation  4.exit : &#8220;;</p>
<p>cin&gt;&gt;choice;</p>
<p>switch(choice)</p>
<p>{</p>
<p>case 1 : p1.scaling();</p>
<p>break;</p>
<p>case 2 : p1.translation();</p>
<p>break;</p>
<p>case 3 : p1.rotate();</p>
<p>break;</p>
<p>case 4 : getch();</p>
<p>closegraph();</p>
<p>exit (0);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>/* End of program */</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itabatch2011.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itabatch2011.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itabatch2011.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itabatch2011.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/itabatch2011.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/itabatch2011.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/itabatch2011.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/itabatch2011.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itabatch2011.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itabatch2011.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itabatch2011.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itabatch2011.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itabatch2011.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itabatch2011.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=7&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://itabatch2011.wordpress.com/2009/11/07/2d-and-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a682936a76085a6dc36ec2c27a2228f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TIA!</media:title>
		</media:content>
	</item>
		<item>
		<title>dda and Bresenhams</title>
		<link>http://itabatch2011.wordpress.com/2009/11/07/dda/</link>
		<comments>http://itabatch2011.wordpress.com/2009/11/07/dda/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:01:17 +0000</pubDate>
		<dc:creator>TIA!</dc:creator>
				<category><![CDATA[cgvrs]]></category>
		<category><![CDATA[bresenhams]]></category>
		<category><![CDATA[dda]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[LINE]]></category>

		<guid isPermaLink="false">http://itabatch2011.wordpress.com/?p=4</guid>
		<description><![CDATA[/*Problem Def :- To write a program to draw line using DDA   Algorithm*/ #include&#60;stdio.h&#62; #include&#60;graphics.h&#62; #include&#60;conio.h&#62; #include&#60;math.h&#62; void main() { float x,y,x1,x2,y1,y2,dx,dy,length; int i,gd,gm; clrscr(); printf(&#8220;Enter the value of x1=&#8221;); scanf(&#8220;%f&#8221;,&#38;x1); printf(&#8220;Enter the value of y1=&#8221;); scanf(&#8220;%f&#8221;,&#38;y1); printf(&#8220;Enter the value of x2=&#8221;); scanf(&#8220;%f&#8221;,&#38;x2); printf(&#8220;Enter the value of y2=&#8221;); scanf(&#8220;%f&#8221;,&#38;y2); detectgraph (&#38;gd,&#38;gm); initgraph(&#38;gd,&#38;gm,&#8221;c:\\tc\\bgi&#8221;); dx=abs(x2-x1); dy=abs(y2-y1); if [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=4&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>/*Problem Def :- To write a program to draw line using DDA   Algorithm*/</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>#include&lt;conio.h&gt;</p>
<p>#include&lt;math.h&gt;</p>
<p>void main()</p>
<p>{</p>
<p>float x,y,x1,x2,y1,y2,dx,dy,length;</p>
<p>int i,gd,gm;</p>
<p>clrscr();</p>
<p>printf(&#8220;Enter the value of x1=&#8221;);</p>
<p>scanf(&#8220;%f&#8221;,&amp;x1);</p>
<p>printf(&#8220;Enter the value of y1=&#8221;);</p>
<p>scanf(&#8220;%f&#8221;,&amp;y1);</p>
<p>printf(&#8220;Enter the value of x2=&#8221;);</p>
<p>scanf(&#8220;%f&#8221;,&amp;x2);</p>
<p>printf(&#8220;Enter the value of y2=&#8221;);</p>
<p>scanf(&#8220;%f&#8221;,&amp;y2);</p>
<p>detectgraph (&amp;gd,&amp;gm);</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tc\\bgi&#8221;);</p>
<p>dx=abs(x2-x1);</p>
<p>dy=abs(y2-y1);</p>
<p>if (dx&gt;=dy)</p>
<p>{</p>
<p>length = dx;</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>length = dy;</p>
<p>}</p>
<p>dx= (x2-x1)/length;</p>
<p>dy= (y2-y1)/length;</p>
<p>x=x1+0.5;</p>
<p>y=y1+0.5;</p>
<p>i=1;</p>
<p>while (i&lt;=length)</p>
<p>{</p>
<p>putpixel(x,y,15);</p>
<p>x=x+dx;</p>
<p>y=y+dy;</p>
<p>i=i+1;</p>
<p>delay(10);</p>
<p>}</p>
<p>getch();</p>
<p>}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>/*Problem Def :- To Implement Bresenham Line Algorithm*/</p>
<p>&nbsp;</p>
<p>#include&lt;stdio.h&gt;</p>
<p>#include&lt;graphics.h&gt;</p>
<p>#include&lt;conio.h&gt;</p>
<p>#include&lt;math.h&gt;</p>
<p>void main()</p>
<p>{</p>
<p>float x,y,x1,x2,y1,y2,dx,dy,e;</p>
<p>int i,gd,gm;</p>
<p>clrscr();</p>
<p>printf(&#8220;Enter x1:&#8221;);</p>
<p>scanf(&#8220;%f&#8221;,&amp;x1);</p>
<p>printf(&#8220;Enter y1:&#8221;);</p>
<p>scanf(&#8220;%f&#8221;,&amp;y1);</p>
<p>printf(&#8220;Enter x2:&#8221;);</p>
<p>scanf(&#8220;%f&#8221;,&amp;x2);</p>
<p>printf(&#8220;Enter y2:&#8221;);</p>
<p>scanf(&#8220;%f&#8221;,&amp;y2);</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>detectgraph (&amp;gd,&amp;gm);</p>
<p>initgraph(&amp;gd,&amp;gm,&#8221;c:\\tc\\bgi&#8221;);</p>
<p>dx=abs(x2-x1);</p>
<p>dy=abs(y2-y1);</p>
<p>x=x1;</p>
<p>y=y1;</p>
<p>e=2*dy-dx;</p>
<p>i=1;</p>
<p>do</p>
<p>{</p>
<p>putpixel(x,y,15);</p>
<p>while(e&gt;=0)</p>
<p>{</p>
<p>y=y+1;</p>
<p>e=e-2*dx;</p>
<p>}</p>
<p>x=x+1;</p>
<p>e=e+2*dy;</p>
<p>i=i+1;</p>
<p>}</p>
<p>while(i&lt;=dx);</p>
<p>delay(50);</p>
<p>getch();</p>
<p>closegraph();</p>
<p>}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/itabatch2011.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/itabatch2011.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/itabatch2011.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/itabatch2011.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/itabatch2011.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/itabatch2011.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/itabatch2011.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/itabatch2011.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/itabatch2011.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/itabatch2011.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/itabatch2011.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/itabatch2011.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/itabatch2011.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/itabatch2011.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=itabatch2011.wordpress.com&amp;blog=10321853&amp;post=4&amp;subd=itabatch2011&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://itabatch2011.wordpress.com/2009/11/07/dda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8a682936a76085a6dc36ec2c27a2228f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TIA!</media:title>
		</media:content>
	</item>
	</channel>
</rss>
