<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2281718786533099493</id><updated>2011-04-22T01:57:56.714+05:30</updated><title type='text'>Programmers Lounge - Graphics Basics</title><subtitle type='html'>All the basic graphics programs goes here</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2281718786533099493.post-1675124784780574694</id><published>2007-08-17T01:43:00.002+05:30</published><updated>2008-04-04T01:01:32.176+05:30</updated><title type='text'>Mid-point Ellipse Algorithm</title><content type='html'>&lt;pre&gt;&lt;code&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;&lt;i&gt;/* Midpoint ellipse algorithm - Subhranath Chunder */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;graphics.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; ellipseMidPoint(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setOthers(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; equ(&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; main()&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; x,y,rx,ry,driver=DETECT,mode;&lt;br /&gt;  clrscr();&lt;br /&gt;&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the co-ordinate of the center of the elipse: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x,&amp;y);&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the radius along x-axis: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d"&lt;/span&gt;,&amp;amp;rx);&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the radius along y-axis: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d"&lt;/span&gt;,&amp;amp;ry);&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"&amp;lt;Press any key to continue&amp;gt;"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;  initgraph(&amp;amp;driver,&amp;mode,&lt;span style="color:#0000ff;"&gt;"f:\\tc\\bgi"&lt;/span&gt;);&lt;br /&gt;  ellipseMidPoint(x,y,rx,ry);&lt;br /&gt;  getch();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; ellipseMidPoint(&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter,&lt;b&gt;int&lt;/b&gt; rx,&lt;b&gt;int&lt;/b&gt; ry)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; x=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;,y=ry,a,b;&lt;br /&gt;  setOthers(x,y,xCenter,yCenter);&lt;br /&gt;  &lt;b&gt;while&lt;/b&gt;(pow(ry,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*x&amp;lt;pow(rx,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*y)&lt;br /&gt;  {&lt;br /&gt;     ++x;&lt;br /&gt;     &lt;b&gt;if&lt;/b&gt;( equ(x,y-(&lt;b&gt;float&lt;/b&gt;)&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;/&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;,rx,ry)&amp;gt;=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;        --y;&lt;br /&gt;     setOthers(x,y,xCenter,yCenter);&lt;br /&gt;  }&lt;br /&gt;  &lt;b&gt;while&lt;/b&gt;(y!=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;  {&lt;br /&gt;     --y;&lt;br /&gt;     &lt;b&gt;if&lt;/b&gt;( equ(x+(&lt;b&gt;float&lt;/b&gt;)&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;/&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;,y,rx,ry)&amp;lt;=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;        ++x;&lt;br /&gt;     setOthers(x,y,xCenter,yCenter);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setOthers(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter)&lt;br /&gt;{&lt;br /&gt;  setPixel(xCenter + x,yCenter + y);&lt;br /&gt;  setPixel(xCenter - x,yCenter + y);&lt;br /&gt;  setPixel(xCenter + x,yCenter - y);&lt;br /&gt;  setPixel(xCenter - x,yCenter - y);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; equ(&lt;b&gt;float&lt;/b&gt; x,&lt;b&gt;float&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; rx,&lt;b&gt;int&lt;/b&gt; ry)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; res;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;( pow(ry,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(rx,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(rx,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(ry,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) == &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt; )&lt;br /&gt;     res=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;( pow(ry,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(rx,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(rx,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(ry,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) &amp;lt; &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt; )&lt;br /&gt;     res=-&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;( pow(ry,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(rx,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(rx,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)*pow(ry,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) &amp;gt; &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt; )&lt;br /&gt;     res=&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;return&lt;/b&gt; res;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y)&lt;br /&gt;{&lt;br /&gt;  putpixel(x,y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;SCRIPT LANGUAGE="JavaScript1.1" SRC="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=72616%26bid=311390" type="text/javascript"&gt;&lt;/SCRIPT&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com/bdv/BidVertiser/bdv_advertiser.dbm"&gt;internet marketing&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2281718786533099493-1675124784780574694?l=programmers-lounge-basicgraphics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/1675124784780574694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2281718786533099493&amp;postID=1675124784780574694' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/1675124784780574694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/1675124784780574694'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/2007/08/mid-point-ellipse-algorithm.html' title='Mid-point Ellipse Algorithm'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2281718786533099493.post-2882216339116157852</id><published>2007-08-17T01:41:00.001+05:30</published><updated>2008-04-04T01:03:17.872+05:30</updated><title type='text'>Mid-point Circle Scaling</title><content type='html'>&lt;pre&gt;&lt;code&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;&lt;i&gt;/* WAP to generate a circle.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;&lt;i&gt;    Write a function to scale the circle by sx amount in x-direction and sy amount in y-direction, where sx and sy are integers provided by the user.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;&lt;i&gt;    Use matrix method. - Subhranath Chunder */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;graphics.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; circleMidPoint(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; equ(&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setOthers(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; scalePoint(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;*,&lt;b&gt;int&lt;/b&gt;*);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; main()&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; x,y,radius,driver=DETECT,mode,sx,sy;&lt;br /&gt;  clrscr();&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* Mid-point and radius of the circle are accepted */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the co-ordinate of the centre: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x,&amp;y);&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the radius of the circle: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d"&lt;/span&gt;,&amp;radius);&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"&amp;lt;Press any key to continue&amp;gt;"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* Graphics mode initialized */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  initgraph(&amp;amp;driver,&amp;mode,&lt;span style="color:#0000ff;"&gt;"F:\\tc\\bgi"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* Circle drawn with no scaling */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  circleMidPoint(x,y,radius,&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;,&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* Amount of scaling */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the amount of scaling in x-direction: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d"&lt;/span&gt;,&amp;sx);&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the amount of scaling in y-direction: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d"&lt;/span&gt;,&amp;sy);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* Translated circle is redrawn */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  circleMidPoint(x,y,radius,sx,sy);&lt;br /&gt;  getch();&lt;br /&gt;  closegraph();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; circleMidPoint(&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter,&lt;b&gt;int&lt;/b&gt; radius,&lt;b&gt;int&lt;/b&gt; sx,&lt;b&gt;int&lt;/b&gt; sy)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; x=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;,y=radius;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* Sets the points for all octants */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  setOthers(x,y,xCenter,yCenter,sx,sy);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* First octant is drawn */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  &lt;b&gt;while&lt;/b&gt;(x&amp;lt;y)&lt;br /&gt;  {&lt;br /&gt;     ++x;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color:#000080;"&gt;&lt;i&gt;/* Checking whether y or y-1 is closer to the circle, by taking their mid-point */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;     &lt;b&gt;if&lt;/b&gt;( equ(x,y-(&lt;b&gt;float&lt;/b&gt;)&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;/&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;,radius) &amp;gt;=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt; )&lt;br /&gt;        --y;&lt;br /&gt;&lt;br /&gt;     setOthers(x,y,xCenter,yCenter,sx,sy);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;&lt;i&gt;/* A function to find whether a given point is inside, outside, or on the circle */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; equ(&lt;b&gt;float&lt;/b&gt; x,&lt;b&gt;float&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; r)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; res;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;( pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) == &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;else if&lt;/b&gt;( pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) &amp;lt; &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=-&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;else if&lt;/b&gt;( pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) &amp;gt; &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;return&lt;/b&gt; res;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;&lt;i&gt;/* A function to set all other points symmetric to the point (x,y) in all the octants */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setOthers(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter,&lt;b&gt;int&lt;/b&gt; sx,&lt;b&gt;int&lt;/b&gt; sy)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; xd,yd;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* If sx==1 and sy==1 then no scaling is required. Otherwise, scale each point. */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;(sx==&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt; &amp;amp;&amp; sy==&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;)&lt;br /&gt;  {&lt;br /&gt;     setPixel(xCenter+x,yCenter+y);&lt;br /&gt;     setPixel(xCenter-x,yCenter+y);&lt;br /&gt;     setPixel(xCenter+x,yCenter-y);&lt;br /&gt;     setPixel(xCenter-x,yCenter-y);&lt;br /&gt;     setPixel(xCenter+y,yCenter+x);&lt;br /&gt;     setPixel(xCenter-y,yCenter+x);&lt;br /&gt;     setPixel(xCenter+y,yCenter-x);&lt;br /&gt;     setPixel(xCenter-y,yCenter-x);&lt;br /&gt;  }&lt;br /&gt;  &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;  {&lt;br /&gt;     scalePoint(xCenter+x,yCenter+y,sx,sy,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     scalePoint(xCenter-x,yCenter+y,sx,sy,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     scalePoint(xCenter+x,yCenter-y,sx,sy,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     scalePoint(xCenter-x,yCenter-y,sx,sy,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     scalePoint(xCenter+y,yCenter+x,sx,sy,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     scalePoint(xCenter-y,yCenter+x,sx,sy,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     scalePoint(xCenter+y,yCenter-x,sx,sy,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     scalePoint(xCenter-y,yCenter-x,sx,sy,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;&lt;i&gt;/* Scales the point (x,y) by sx and sy amount, and stores the new point in (xd,yd) */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; scalePoint(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; sx,&lt;b&gt;int&lt;/b&gt; sy,&lt;b&gt;int&lt;/b&gt; *xd,&lt;b&gt;int&lt;/b&gt; *yd)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; i,j,a[&lt;span style="color:#ff0080;"&gt;3&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;3&lt;/span&gt;],b[&lt;span style="color:#ff0080;"&gt;3&lt;/span&gt;],c[&lt;span style="color:#ff0080;"&gt;3&lt;/span&gt;];&lt;br /&gt;&lt;br /&gt;  a[&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;]=sx; a[&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;]=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;; a[&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;]=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;;&lt;br /&gt;  a[&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;]=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;; a[&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;]=sy; a[&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;]=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;;&lt;br /&gt;  a[&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;]=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;; a[&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;]=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;; a[&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;][&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;]=&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;  b[&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;]=x;&lt;br /&gt;  b[&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;]=y;&lt;br /&gt;  b[&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;]=&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;for&lt;/b&gt;(i=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color:#ff0080;"&gt;3&lt;/span&gt;;++i)&lt;br /&gt;  {&lt;br /&gt;     c[i]=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;;&lt;br /&gt;     &lt;b&gt;for&lt;/b&gt;(j=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;;j&amp;lt;&lt;span style="color:#ff0080;"&gt;3&lt;/span&gt;;++j)&lt;br /&gt;     {&lt;br /&gt;        c[i]+=a[i][j]*b[j];&lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  &lt;span style="color:#000080;"&gt;&lt;i&gt;/* Scaled point */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  *xd=c[&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;]/c[&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;];&lt;br /&gt;  *yd=c[&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;]/c[&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y)&lt;br /&gt;{&lt;br /&gt;  putpixel(x,y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;SCRIPT LANGUAGE="JavaScript1.1" SRC="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=72616%26bid=311390" type="text/javascript"&gt;&lt;/SCRIPT&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com/bdv/BidVertiser/bdv_advertiser.dbm"&gt;internet marketing&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2281718786533099493-2882216339116157852?l=programmers-lounge-basicgraphics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/2882216339116157852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2281718786533099493&amp;postID=2882216339116157852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/2882216339116157852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/2882216339116157852'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/2007/08/mid-point-circle-scaling.html' title='Mid-point Circle Scaling'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2281718786533099493.post-9072921681911151559</id><published>2007-08-17T01:39:00.002+05:30</published><updated>2008-04-04T01:03:34.872+05:30</updated><title type='text'>Mid-point Circle Translation</title><content type='html'>&lt;pre&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Midpoint circle translation in homogeneous coordinate form - Subhranath Chunder */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;graphics.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; circleMidPoint(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; equ(&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setOthers(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; translatePoint(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;*,&lt;b&gt;int&lt;/b&gt;*);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; main()&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; x,y,radius,driver=DETECT,mode,xt,yt;&lt;br /&gt;  clrscr();&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Mid-point and radius of the circle are accepted */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the co-ordinate of the centre: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x,&amp;y);&lt;br /&gt;  printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the radius of the circle: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d"&lt;/span&gt;,&amp;radius);&lt;br /&gt;  printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"&amp;lt;Press any key to continue&amp;gt;"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Graphics mode initialized */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  initgraph(&amp;amp;driver,&amp;mode,&lt;span style="color: rgb(0, 0, 255);"&gt;"F:\\tc\\bgi"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Circle drawn with zero translation */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  circleMidPoint(x,y,radius,&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Amount of translation */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the amount of translation in x-direction: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d"&lt;/span&gt;,&amp;amp;xt);&lt;br /&gt;  printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the amount of translation in y-direction: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d"&lt;/span&gt;,&amp;amp;yt);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Translated circle is redrawn */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  circleMidPoint(x,y,radius,xt,yt);&lt;br /&gt;  getch();&lt;br /&gt;  closegraph();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; circleMidPoint(&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter,&lt;b&gt;int&lt;/b&gt; radius,&lt;b&gt;int&lt;/b&gt; xt,&lt;b&gt;int&lt;/b&gt; yt)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; x=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;,y=radius;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Sets the points for all octants */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  setOthers(x,y,xCenter,yCenter,xt,yt);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* First octant is drawn */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  &lt;b&gt;while&lt;/b&gt;(x&amp;lt;y)&lt;br /&gt;  {&lt;br /&gt;     ++x;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Checking whether y or y-1 is closer to the circle, by taking their mid-point */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;     &lt;b&gt;if&lt;/b&gt;( equ(x,y-(&lt;b&gt;float&lt;/b&gt;)&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;/&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;,radius) &amp;gt;=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt; )&lt;br /&gt;        --y;&lt;br /&gt;&lt;br /&gt;     setOthers(x,y,xCenter,yCenter,xt,yt);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* A function to find whether a given point is inside, outside, or on the circle */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; equ(&lt;b&gt;float&lt;/b&gt; x,&lt;b&gt;float&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; r)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; res;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;( pow(x,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;) == &lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;else if&lt;/b&gt;( pow(x,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;) &amp;lt; &lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=-&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;else if&lt;/b&gt;( pow(x,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;) &amp;gt; &lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;return&lt;/b&gt; res;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* A function to set all other points symmetric to the point (x,y) in all the octants */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setOthers(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter,&lt;b&gt;int&lt;/b&gt; xt,&lt;b&gt;int&lt;/b&gt; yt)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; xd,yd;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* If xt==0 and yt==0 then no translation is required. Otherwise, translate each point. */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;(xt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt; &amp;amp;&amp; yt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;  {&lt;br /&gt;     setPixel(xCenter+x,yCenter+y);&lt;br /&gt;     setPixel(xCenter-x,yCenter+y);&lt;br /&gt;     setPixel(xCenter+x,yCenter-y);&lt;br /&gt;     setPixel(xCenter-x,yCenter-y);&lt;br /&gt;     setPixel(xCenter+y,yCenter+x);&lt;br /&gt;     setPixel(xCenter-y,yCenter+x);&lt;br /&gt;     setPixel(xCenter+y,yCenter-x);&lt;br /&gt;     setPixel(xCenter-y,yCenter-x);&lt;br /&gt;  }&lt;br /&gt;  &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;  {&lt;br /&gt;     translatePoint(xCenter+x,yCenter+y,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     translatePoint(xCenter-x,yCenter+y,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     translatePoint(xCenter+x,yCenter-y,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     translatePoint(xCenter-x,yCenter-y,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     translatePoint(xCenter+y,yCenter+x,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     translatePoint(xCenter-y,yCenter+x,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     translatePoint(xCenter+y,yCenter-x,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;     translatePoint(xCenter-y,yCenter-x,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;     setPixel(xd,yd);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Translates the point (x,y) by xt and yt amount, and stores the new point in (xd,yd) */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; translatePoint(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; xt,&lt;b&gt;int&lt;/b&gt; yt,&lt;b&gt;int&lt;/b&gt; *xd,&lt;b&gt;int&lt;/b&gt; *yd)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; i,j,a[&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;],b[&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;],c[&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;];&lt;br /&gt;&lt;br /&gt;  a[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;]=xt;&lt;br /&gt;  a[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;]=yt;&lt;br /&gt;  a[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;  b[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]=x;&lt;br /&gt;  b[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]=y;&lt;br /&gt;  b[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;for&lt;/b&gt;(i=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;;++i)&lt;br /&gt;  {&lt;br /&gt;     c[i]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;     &lt;b&gt;for&lt;/b&gt;(j=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;j&amp;lt;&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;;++j)&lt;br /&gt;     {&lt;br /&gt;        c[i]+=a[i][j]*b[j];&lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Translated point */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  *xd=c[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]/c[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;];&lt;br /&gt;  *yd=c[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]/c[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y)&lt;br /&gt;{&lt;br /&gt;  putpixel(x,y,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;SCRIPT LANGUAGE="JavaScript1.1" SRC="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=72616%26bid=311390" type="text/javascript"&gt;&lt;/SCRIPT&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com/bdv/BidVertiser/bdv_advertiser.dbm"&gt;internet marketing&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2281718786533099493-9072921681911151559?l=programmers-lounge-basicgraphics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/9072921681911151559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2281718786533099493&amp;postID=9072921681911151559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/9072921681911151559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/9072921681911151559'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/2007/08/mid-point-circle-translation.html' title='Mid-point Circle Translation'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2281718786533099493.post-3073847811176536321</id><published>2007-08-17T01:37:00.001+05:30</published><updated>2008-04-04T01:03:55.184+05:30</updated><title type='text'>Mid-point Circle Algorithm</title><content type='html'>&lt;pre&gt;&lt;code&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;span style="color:#000080;"&gt;&lt;i&gt;/* Midpoint circle algorithm - Subhranath Chunder */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;graphics.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008000;"&gt;#include&amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; circleMidPoint(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; equ(&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setOthers(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; main()&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; x,y,radius,driver=DETECT,mode;&lt;br /&gt;  clrscr();&lt;br /&gt;&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the co-ordinate of the centre: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x,&amp;y);&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"Enter the radius of the circle: "&lt;/span&gt;);&lt;br /&gt;  scanf(&lt;span style="color:#0000ff;"&gt;"%d"&lt;/span&gt;,&amp;radius);&lt;br /&gt;  printf(&lt;span style="color:#0000ff;"&gt;"&amp;lt;Press any key to continue&amp;gt;"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;  initgraph(&amp;amp;driver,&amp;mode,&lt;span style="color:#0000ff;"&gt;"F:\\tc\\bgi"&lt;/span&gt;);&lt;br /&gt;  circleMidPoint(x,y,radius);&lt;br /&gt;  getch();&lt;br /&gt;  closegraph();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; circleMidPoint(&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter,&lt;b&gt;int&lt;/b&gt; radius)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; x=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;,y=radius;&lt;br /&gt;  setOthers(x,y,xCenter,yCenter);&lt;br /&gt;  &lt;b&gt;while&lt;/b&gt;(x&amp;lt;y)&lt;br /&gt;  {&lt;br /&gt;     ++x;&lt;br /&gt;     &lt;b&gt;if&lt;/b&gt;( equ(x,y-(&lt;b&gt;float&lt;/b&gt;)&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;/&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;,radius) &amp;gt;=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt; )&lt;br /&gt;        --y;&lt;br /&gt;     setOthers(x,y,xCenter,yCenter);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; equ(&lt;b&gt;float&lt;/b&gt; x,&lt;b&gt;float&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; r)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;int&lt;/b&gt; res;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;( pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) == &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=&lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;else if&lt;/b&gt;( pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) &amp;lt; &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=-&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;else if&lt;/b&gt;( pow(x,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)+pow(y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;)-pow(r,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;) &amp;gt; &lt;span style="color:#ff0080;"&gt;0&lt;/span&gt;)&lt;br /&gt;     res=&lt;span style="color:#ff0080;"&gt;1&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;return&lt;/b&gt; res;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setOthers(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; xCenter,&lt;b&gt;int&lt;/b&gt; yCenter)&lt;br /&gt;{&lt;br /&gt;  setPixel(xCenter+x,yCenter+y);&lt;br /&gt;  setPixel(xCenter-x,yCenter+y);&lt;br /&gt;  setPixel(xCenter+x,yCenter-y);&lt;br /&gt;  setPixel(xCenter-x,yCenter-y);&lt;br /&gt;  setPixel(xCenter+y,yCenter+x);&lt;br /&gt;  setPixel(xCenter-y,yCenter+x);&lt;br /&gt;  setPixel(xCenter+y,yCenter-x);&lt;br /&gt;  setPixel(xCenter-y,yCenter-x);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y)&lt;br /&gt;{&lt;br /&gt;  putpixel(x,y,&lt;span style="color:#ff0080;"&gt;2&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;SCRIPT LANGUAGE="JavaScript1.1" SRC="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=72616%26bid=311390" type="text/javascript"&gt;&lt;/SCRIPT&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com/bdv/BidVertiser/bdv_advertiser.dbm"&gt;internet marketing&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2281718786533099493-3073847811176536321?l=programmers-lounge-basicgraphics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/3073847811176536321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2281718786533099493&amp;postID=3073847811176536321' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/3073847811176536321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/3073847811176536321'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/2007/08/mid-point-circle-algorithm.html' title='Mid-point Circle Algorithm'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2281718786533099493.post-5834176326129830097</id><published>2007-08-17T01:33:00.001+05:30</published><updated>2008-04-04T01:05:51.895+05:30</updated><title type='text'>Line Translation (DDA used here)</title><content type='html'>&lt;pre&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* WAP to generate a line using DDA.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;    Write a function to translate the line by tx amount in x-direction and ty amount in y-direction, where tx and ty are integers provided by the user.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;    Use matrix method. - Subhranath Chunder */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;graphics.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; lineDDA(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; translatePoint(&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;float&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;float&lt;/b&gt;*,&lt;b&gt;float&lt;/b&gt;*);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; main()&lt;br /&gt;{&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; x1,y1,x2,y2,xt,yt;&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; driver=DETECT,mode;&lt;br /&gt;clrscr();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Two end-points of the line are accepted */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the co-ordinates of the first point (a b): "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x1,&amp;y1);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the co-ordinates of the second point (a b): "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x2,&amp;y2);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"&amp;lt;Press any key to continue&amp;gt;"&lt;/span&gt;);&lt;br /&gt;getch();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Initialize graphics mode */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;initgraph(&amp;driver,&amp;amp;mode,&lt;span style="color: rgb(0, 0, 255);"&gt;"F:\\TC\\BGI"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Line drawn with zero translation */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;lineDDA(x1,y1,x2,y2,&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Amount of translation, if any */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the amount of translation in x-direction: "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d"&lt;/span&gt;,&amp;amp;xt);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the amount of translation in y-direction: "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d"&lt;/span&gt;,&amp;amp;yt);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Translated line */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;lineDDA(x1,y1,x2,y2,xt,yt);&lt;br /&gt;getch();&lt;br /&gt;closegraph();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; lineDDA(&lt;b&gt;int&lt;/b&gt; x1,&lt;b&gt;int&lt;/b&gt; y1,&lt;b&gt;int&lt;/b&gt; x2,&lt;b&gt;int&lt;/b&gt; y2,&lt;b&gt;int&lt;/b&gt; xt,&lt;b&gt;int&lt;/b&gt; yt)&lt;br /&gt;{&lt;br /&gt;&lt;b&gt;float&lt;/b&gt; m,x,y,xd,yd;&lt;br /&gt;x=x1;&lt;br /&gt;y=y1;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* If xt=0 and yt=0, then no translation. */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;if&lt;/b&gt;(xt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt; &amp;&amp;amp; yt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;  setPixel(x,y);&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Otherwise translate each point */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;else&lt;/b&gt;&lt;br /&gt;{&lt;br /&gt;  translatePoint(x,y,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;  setPixel(xd,yd);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* For vertical lines */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;if&lt;/b&gt;(x1==x2)&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;while&lt;/b&gt;(y!=y2)&lt;br /&gt;  {&lt;br /&gt;     &lt;b&gt;if&lt;/b&gt;(y2-y1&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;        ++y;&lt;br /&gt;     &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;        --y;&lt;br /&gt;     &lt;b&gt;if&lt;/b&gt;(xt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt; &amp;&amp;amp; yt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;        setPixel(x,y);&lt;br /&gt;     &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;     {&lt;br /&gt;        translatePoint(x,y,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;        setPixel(xd,yd);&lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Non-vertical lines */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;else&lt;/b&gt;&lt;br /&gt;{&lt;br /&gt;  m=(&lt;b&gt;float&lt;/b&gt;)(y2-y1)/(x2-x1);&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* When -1&amp;lt;=m&amp;lt;=1 we calculate the corresponding y's for unit intervals of x */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  &lt;b&gt;if&lt;/b&gt;(m&amp;lt;=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt; &amp;&amp;amp; m&amp;gt;=-&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;)&lt;br /&gt;  {&lt;br /&gt;     &lt;b&gt;while&lt;/b&gt;(x!=x2)&lt;br /&gt;     {&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* To check whether the line is drawn from left to right, or the reverse */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;if&lt;/b&gt;(x2-x1&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;           y=y+m;&lt;br /&gt;           ++x;&lt;br /&gt;        }&lt;br /&gt;        &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;        {&lt;br /&gt;           y=y-m;&lt;br /&gt;           --x;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* x and y is plotted, with or without translation */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;if&lt;/b&gt;(xt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt; &amp;&amp;amp; yt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;           setPixel(x,y);&lt;br /&gt;        &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;        {&lt;br /&gt;           translatePoint(x,y,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;           setPixel(xd,yd);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* When m&amp;lt;-1 or m&amp;gt;1 we calculate the corresponding x's for unit intervals of y */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;  {&lt;br /&gt;     &lt;b&gt;while&lt;/b&gt;(y!=y2)&lt;br /&gt;     {&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* To check whether the line is drawn from bottom to top, or it's reverse */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;if&lt;/b&gt;((y2-y1)&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;           x=x+(&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;/m);&lt;br /&gt;           ++y;&lt;br /&gt;        }&lt;br /&gt;        &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;        {&lt;br /&gt;           x=x-(&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;/m);&lt;br /&gt;           --y;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* x and y is plotted, with or without translation */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;if&lt;/b&gt;(xt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt; &amp;&amp;amp; yt==&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;           setPixel(x,y);&lt;br /&gt;        &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;        {&lt;br /&gt;           translatePoint(x,y,xt,yt,&amp;amp;xd,&amp;yd);&lt;br /&gt;           setPixel(xd,yd);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Translates the point (x,y) by xt and yt amount, and stores the new point in (xd,yd) */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; translatePoint(&lt;b&gt;float&lt;/b&gt; x,&lt;b&gt;float&lt;/b&gt; y,&lt;b&gt;int&lt;/b&gt; xt,&lt;b&gt;int&lt;/b&gt; yt,&lt;b&gt;float&lt;/b&gt; *xd,&lt;b&gt;float&lt;/b&gt; *yd)&lt;br /&gt;{&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; i,j;&lt;br /&gt;&lt;b&gt;float&lt;/b&gt; a[&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;],b[&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;],c[&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;];&lt;br /&gt;&lt;br /&gt;a[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;]=xt;&lt;br /&gt;a[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;]=yt;&lt;br /&gt;a[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;; a[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;][&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;b[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]=x;&lt;br /&gt;b[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]=y;&lt;br /&gt;b[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;]=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;for&lt;/b&gt;(i=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;i&amp;lt;&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;;++i)&lt;br /&gt;{&lt;br /&gt;  c[i]=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;  &lt;b&gt;for&lt;/b&gt;(j=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;j&amp;lt;&lt;span style="color: rgb(255, 0, 128);"&gt;3&lt;/span&gt;;++j)&lt;br /&gt;  {&lt;br /&gt;     c[i]+=a[i][j]*b[j];&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Translated point */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;*xd=c[&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;]/c[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;];&lt;br /&gt;*yd=c[&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;]/c[&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y)&lt;br /&gt;{&lt;br /&gt;putpixel(x,y,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;SCRIPT LANGUAGE="JavaScript1.1" SRC="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=72616%26bid=311390" type="text/javascript"&gt;&lt;/SCRIPT&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com/bdv/BidVertiser/bdv_advertiser.dbm"&gt;internet marketing&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2281718786533099493-5834176326129830097?l=programmers-lounge-basicgraphics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/5834176326129830097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2281718786533099493&amp;postID=5834176326129830097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/5834176326129830097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/5834176326129830097'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/2007/08/line-translation-dda-used-here.html' title='Line Translation (DDA used here)'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2281718786533099493.post-597257630103249933</id><published>2007-08-17T01:28:00.001+05:30</published><updated>2008-04-04T01:06:20.458+05:30</updated><title type='text'>Rectangle using Bresenham's line</title><content type='html'>&lt;pre&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* WAP to draw a rectangle whose lower left corner, length and breadth are provided by the user.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;    Use Bresenham’s algorithm to draw the sides of the rectangle - Subhranath Chunder */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;graphics.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; lineBres(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; main()&lt;br /&gt;{&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; x,y,length,breadth;&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; driver=DETECT,mode;&lt;br /&gt;&lt;br /&gt;clrscr();&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the co-ordinates of the lower left corner (a b): "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x,&amp;y);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the length of the rectangle: "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d"&lt;/span&gt;,&amp;amp;length);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the breadth of the rectangle: "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d"&lt;/span&gt;,&amp;amp;breadth);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"&amp;lt;Press any key to continue&amp;gt;"&lt;/span&gt;);&lt;br /&gt;getch();&lt;br /&gt;&lt;br /&gt;initgraph(&amp;driver,&amp;amp;mode,&lt;span style="color: rgb(0, 0, 255);"&gt;"F:\\TC\\BGI"&lt;/span&gt;);&lt;br /&gt;lineBres(x,y,x+length,y);&lt;br /&gt;lineBres(x+length,y,x+length,y-breadth);&lt;br /&gt;lineBres(x+length,y-breadth,x,y-breadth);&lt;br /&gt;lineBres(x,y-breadth,x,y);&lt;br /&gt;getch();&lt;br /&gt;closegraph();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; lineBres(&lt;b&gt;int&lt;/b&gt; x1,&lt;b&gt;int&lt;/b&gt; y1,&lt;b&gt;int&lt;/b&gt; x2,&lt;b&gt;int&lt;/b&gt; y2)&lt;br /&gt;{&lt;br /&gt;&lt;b&gt;float&lt;/b&gt; error,m;&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; x,y;&lt;br /&gt;x=x1;&lt;br /&gt;y=y1;&lt;br /&gt;&lt;b&gt;if&lt;/b&gt;(x1==x2)&lt;br /&gt;{&lt;br /&gt;   &lt;b&gt;while&lt;/b&gt;(y!=y2)&lt;br /&gt;   {&lt;br /&gt;      &lt;b&gt;if&lt;/b&gt;(y2-y1&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;         ++y;&lt;br /&gt;      &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;         --y;&lt;br /&gt;      setPixel(x,y);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;b&gt;else&lt;/b&gt;&lt;br /&gt;{&lt;br /&gt;   m=(&lt;b&gt;float&lt;/b&gt;)(y2-y1)/(x2-x1);&lt;br /&gt;   error=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt;   setPixel(x,y);&lt;br /&gt;   &lt;b&gt;while&lt;/b&gt;(x!=x2)&lt;br /&gt;   {&lt;br /&gt;      error+=m;&lt;br /&gt;      &lt;b&gt;if&lt;/b&gt;(error&amp;gt;.&lt;span style="color: rgb(255, 0, 128);"&gt;5&lt;/span&gt;)&lt;br /&gt;      {&lt;br /&gt;         &lt;b&gt;if&lt;/b&gt;(x2-x1&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;            y+=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;         &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;            y-=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;         --error;&lt;br /&gt;      }&lt;br /&gt;      &lt;b&gt;if&lt;/b&gt;(x2-x1&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;         ++x;&lt;br /&gt;      &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;         --x;&lt;br /&gt;      setPixel(x,y);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y)&lt;br /&gt;{&lt;br /&gt;putpixel(x,y,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;SCRIPT LANGUAGE="JavaScript1.1" SRC="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=72616%26bid=311390" type="text/javascript"&gt;&lt;/SCRIPT&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com/bdv/BidVertiser/bdv_advertiser.dbm"&gt;internet marketing&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2281718786533099493-597257630103249933?l=programmers-lounge-basicgraphics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/597257630103249933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2281718786533099493&amp;postID=597257630103249933' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/597257630103249933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/597257630103249933'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/2007/08/rectangle-using-bresenhams-line.html' title='Rectangle using Bresenham&apos;s line'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2281718786533099493.post-5914801620298449868</id><published>2007-08-17T01:25:00.001+05:30</published><updated>2008-04-04T01:06:36.160+05:30</updated><title type='text'>Bresenham's Line (for slope 0 to 1)</title><content type='html'>&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* Bresenham's Line Implementation for 0&amp;lt;=m&amp;lt;=1 and drawing from left to right. - Subhranath Chunder */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;graphics.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; lineBres(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; main()&lt;br /&gt;{&lt;br /&gt; &lt;b&gt;int&lt;/b&gt; x1,y1,x2,y2;&lt;br /&gt; &lt;b&gt;int&lt;/b&gt; driver=DETECT,mode;&lt;br /&gt;&lt;br /&gt; clrscr();&lt;br /&gt; printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the co-ordinates of the first point (a b): "&lt;/span&gt;);&lt;br /&gt; scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x1,&amp;y1);&lt;br /&gt; printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the co-ordinates of the second point (a b): "&lt;/span&gt;);&lt;br /&gt; scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x2,&amp;y2);&lt;br /&gt; printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"&amp;lt;Press any key to continue&amp;gt;"&lt;/span&gt;);&lt;br /&gt; getch();&lt;br /&gt;&lt;br /&gt; initgraph(&amp;driver,&amp;amp;mode,&lt;span style="color: rgb(0, 0, 255);"&gt;"F:\\TC\\BGI"&lt;/span&gt;);&lt;br /&gt; lineBres(x1,y1,x2,y2);&lt;br /&gt; getch();&lt;br /&gt; closegraph();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; lineBres(&lt;b&gt;int&lt;/b&gt; x1,&lt;b&gt;int&lt;/b&gt; y1,&lt;b&gt;int&lt;/b&gt; x2,&lt;b&gt;int&lt;/b&gt; y2)&lt;br /&gt;{&lt;br /&gt; &lt;b&gt;float&lt;/b&gt; error,m;&lt;br /&gt; &lt;b&gt;int&lt;/b&gt; x,y;&lt;br /&gt; m=(&lt;b&gt;float&lt;/b&gt;)(y2-y1)/(x2-x1);&lt;br /&gt; error=&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;;&lt;br /&gt; y=y1;&lt;br /&gt; x=x1;&lt;br /&gt; setPixel(x,y);&lt;br /&gt; &lt;b&gt;while&lt;/b&gt;(x&amp;lt;=x2)&lt;br /&gt; {&lt;br /&gt;    error+=m;&lt;br /&gt;    &lt;b&gt;if&lt;/b&gt;(error&amp;gt;.&lt;span style="color: rgb(255, 0, 128);"&gt;5&lt;/span&gt;)&lt;br /&gt;    {&lt;br /&gt;       y+=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;;&lt;br /&gt;       --error;&lt;br /&gt;    }&lt;br /&gt;    ++x;&lt;br /&gt;    setPixel(x,y);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y)&lt;br /&gt;{&lt;br /&gt; putpixel(x,y,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;SCRIPT LANGUAGE="JavaScript1.1" SRC="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=72616%26bid=311390" type="text/javascript"&gt;&lt;/SCRIPT&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com/bdv/BidVertiser/bdv_advertiser.dbm"&gt;internet marketing&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2281718786533099493-5914801620298449868?l=programmers-lounge-basicgraphics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/5914801620298449868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2281718786533099493&amp;postID=5914801620298449868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/5914801620298449868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/5914801620298449868'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/2007/08/bresenhams-line-for-slope-0-to-1.html' title='Bresenham&apos;s Line (for slope 0 to 1)'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2281718786533099493.post-981740693512852167</id><published>2007-08-17T01:19:00.001+05:30</published><updated>2008-04-04T01:06:51.682+05:30</updated><title type='text'>DDA Line Implementation</title><content type='html'>&lt;pre&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;i&gt;/* DDA Line Implementation - Subhranath Chunder */&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include&amp;lt;graphics.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; lineDDA(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt;,&lt;b&gt;int&lt;/b&gt;);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; main()&lt;br /&gt;{&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; x1,y1,x2,y2;&lt;br /&gt;&lt;b&gt;int&lt;/b&gt; driver=DETECT,mode;&lt;br /&gt;&lt;br /&gt;clrscr();&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the co-ordinates of the first point (a b): "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x1,&amp;y1);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"Enter the co-ordinates of the second point (a b): "&lt;/span&gt;);&lt;br /&gt;scanf(&lt;span style="color: rgb(0, 0, 255);"&gt;"%d %d"&lt;/span&gt;,&amp;amp;x2,&amp;y2);&lt;br /&gt;printf(&lt;span style="color: rgb(0, 0, 255);"&gt;"&amp;lt;Press any key to continue&amp;gt;"&lt;/span&gt;);&lt;br /&gt;getch();&lt;br /&gt;&lt;br /&gt;initgraph(&amp;driver,&amp;amp;mode,&lt;span style="color: rgb(0, 0, 255);"&gt;"F:\\TC\\BGI"&lt;/span&gt;);&lt;br /&gt;lineDDA(x1,y1,x2,y2);&lt;br /&gt;getch();&lt;br /&gt;closegraph();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; lineDDA(&lt;b&gt;int&lt;/b&gt; x1,&lt;b&gt;int&lt;/b&gt; y1,&lt;b&gt;int&lt;/b&gt; x2,&lt;b&gt;int&lt;/b&gt; y2)&lt;br /&gt;{&lt;br /&gt;&lt;b&gt;float&lt;/b&gt; m,x,y;&lt;br /&gt;x=x1;&lt;br /&gt;y=y1;&lt;br /&gt;setPixel(x,y);&lt;br /&gt;&lt;b&gt;if&lt;/b&gt;(x1==x2)&lt;br /&gt;{&lt;br /&gt;   &lt;b&gt;while&lt;/b&gt;(y!=y2)&lt;br /&gt;   {&lt;br /&gt;      &lt;b&gt;if&lt;/b&gt;(y2-y1&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;         ++y;&lt;br /&gt;      &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;         --y;&lt;br /&gt;      setPixel(x,y);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;b&gt;else&lt;/b&gt;&lt;br /&gt;{&lt;br /&gt;   m=(&lt;b&gt;float&lt;/b&gt;)(y2-y1)/(x2-x1);&lt;br /&gt;   &lt;b&gt;if&lt;/b&gt;(m&amp;lt;=&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt; &amp;&amp;amp; m&amp;gt;=-&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;)&lt;br /&gt;   {&lt;br /&gt;      &lt;b&gt;while&lt;/b&gt;(x!=x2)&lt;br /&gt;      {&lt;br /&gt;         &lt;b&gt;if&lt;/b&gt;(x2-x1&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;         {&lt;br /&gt;            y=y+m;&lt;br /&gt;            ++x;&lt;br /&gt;         }&lt;br /&gt;         &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;         {&lt;br /&gt;            y=y-m;&lt;br /&gt;            --x;&lt;br /&gt;         }&lt;br /&gt;         setPixel(x,y);&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;   &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;   {&lt;br /&gt;      &lt;b&gt;while&lt;/b&gt;(y!=y2)&lt;br /&gt;      {&lt;br /&gt;         &lt;b&gt;if&lt;/b&gt;((y2-y1)&amp;gt;&lt;span style="color: rgb(255, 0, 128);"&gt;0&lt;/span&gt;)&lt;br /&gt;         {&lt;br /&gt;            x=x+(&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;/m);&lt;br /&gt;            ++y;&lt;br /&gt;         }&lt;br /&gt;         &lt;b&gt;else&lt;/b&gt;&lt;br /&gt;         {&lt;br /&gt;            x=x-(&lt;span style="color: rgb(255, 0, 128);"&gt;1&lt;/span&gt;/m);&lt;br /&gt;            --y;&lt;br /&gt;         }&lt;br /&gt;         setPixel(x,y);&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;void&lt;/b&gt; setPixel(&lt;b&gt;int&lt;/b&gt; x,&lt;b&gt;int&lt;/b&gt; y)&lt;br /&gt;{&lt;br /&gt;putpixel(x,y,&lt;span style="color: rgb(255, 0, 128);"&gt;2&lt;/span&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;SCRIPT LANGUAGE="JavaScript1.1" SRC="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=72616%26bid=311390" type="text/javascript"&gt;&lt;/SCRIPT&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com/bdv/BidVertiser/bdv_advertiser.dbm"&gt;internet marketing&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2281718786533099493-981740693512852167?l=programmers-lounge-basicgraphics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmers-lounge-basicgraphics.blogspot.com/feeds/981740693512852167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2281718786533099493&amp;postID=981740693512852167' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/981740693512852167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2281718786533099493/posts/default/981740693512852167'/><link rel='alternate' type='text/html' href='http://programmers-lounge-basicgraphics.blogspot.com/2007/08/dda-line-implementation.html' title='DDA Line Implementation'/><author><name>Subhranath Chunder</name><uri>http://www.blogger.com/profile/16503059186252225992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_XBDPeQ0au88/SzaAHOx29BI/AAAAAAAAAFA/nHm0bc7K6a8/S220/big3.jpg'/></author><thr:total>1</thr:total></entry></feed>
