{"id":47,"date":"2018-07-20T04:55:33","date_gmt":"2018-07-20T04:55:33","guid":{"rendered":"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/?post_type=chapter&#038;p=47"},"modified":"2018-12-26T11:55:03","modified_gmt":"2018-12-26T11:55:03","slug":"bresenhams-line-drawingprocedure","status":"publish","type":"chapter","link":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/chapter\/bresenhams-line-drawingprocedure\/","title":{"rendered":"Bresenham\u2019s Line drawing\tprocedure"},"content":{"raw":"<div><span style=\"float: right\"><a href=\"https:\/\/youtu.be\/npve6wRF1uQ\" target=\"_blank\" rel=\"noopener\"><img src=\"http:\/\/epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/2018\/11\/download.png\" alt=\"epgp books\" width=\"75px\" height=\"75px;\" \/><\/a>\r\n<\/span><\/div>\r\n<div>\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n<strong>Learning Objectives:<\/strong>\r\n<ul>\r\n \t<li>Understand the theory behind Bresenham\u2019s Line drawing procedure<\/li>\r\n \t<li>Prove the advantages of Bresenham\u2019s procedure over DDA procedure<\/li>\r\n \t<li>Solve example problem for better understanding of the concepts<\/li>\r\n<\/ul>\r\n&nbsp;\r\n<p style=\"text-align: justify\">In this module, let\u2019s focus on Bresenham\u2019s line drawing procedure which is superior to DDA procedure as this avoids floating point calculations and gives a better approximation for the theoretical line.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Bresenham is a scientist and is popular for his contributions to line drawing and circle drawing procedures, and few others, which are not of our interest.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Assume a line with slope &lt;1, the same discussion that we had during DDA procedure is still valid here, i.e. sample the line along x-axis at unit x-intervals if the line slopes are &lt;=1 otherwise sample the line along y-axis.<\/p>\r\n&nbsp;\r\n\r\n<img class=\"size-full wp-image-50 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-18.png\" alt=\"\" width=\"209\" height=\"134\" \/>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Let\u2019s start our assumptions with a line whose slope &lt;1 i.e. the line is more inclined towards x-axis, so it is obvious to sample the line along x-axis at unit x-intervals and compute the corresponding y values. Also that to compute next points on a line, we always starts with a known point on the line and tries computing the next unknown point on the line using recursive equations.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">So the next x i.e. xk+1=xk+1 and the next y i.e. yk+1 is to be computed. Let the known plotted point on the line be (xk,yk).<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Before we get into the derivation lets understand the underlying principle of Bresenham\u2019s procedure. To compute the next point on the line (Xk+1, Yk+1), a value called \u2018<em>decision parameter<\/em>\u2019 is computed. Based on the result a pixel is chosen for plotting.<\/p>\r\n\r\n<\/div>\r\n<img class=\"size-full wp-image-51 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-19.png\" alt=\"\" width=\"219\" height=\"175\" \/>\r\n<div>\r\n<p style=\"text-align: justify\">As shown in the figure above let the line shown be the theoretical line and we need to find the best possible approximation for this by computing Bresenham\u2019s line. For the next X position, Xk+1, the corresponding Y value could not be plotted as the position (Xk+1, y) does not exist on the monitor. We have to choose between Yk and Yk+1. i.e. next position to be plotted is either (Xk+1, Yk) or (Xk+1, Yk+1). Now how do we decide among the two choices. The answer is, compute the vertical difference between the possible pixel position and the position on the true theoretical line which is.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Let dlower be the vertical difference between the position (y) on theoretical line and the lower pixel (yk) and dupper be the vertical difference between the position (y) on theoretical line and the upper pixel (yk+1). As evident if dlower is &lt; dupper the theoretical line is closer to the lower pixel so choose position (Xk+1, Yk) otherwise choose position. The difference between dlower and dupper is considered as \u2018decision parameter\u2019, as the sign of the difference operation helps us decide what y coordinate position is to be chosen for the next x.<\/p>\r\n\r\n<ul>\r\n \t<li>\u2018Decision parameter\u2019 referred to as <em>p<\/em><em>k<\/em> helps us decide which of the pixels is to be chosen<\/li>\r\n \t<li>Whichever pixel position is close to the theoretical line, that pixel is chosen.<\/li>\r\n<\/ul>\r\n&nbsp;\r\n\r\ni.e. next X is\u00a0\u00a0 Xk+1 = Xk+1, and next Y is\u00a0 Yk+1=Yk or Yk+1 depending on the sign of pk.\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Let\u2019s derive those recursive equations of the Bresenham\u2019s procedure. To start with we use slope-intercept form of line equation. Having known the position (xk,yk) on the line, the next x position would be xk+1. From the slope-intercept form of line equation, for the next x position we have<\/p>\r\n&nbsp;\r\n\r\n<img class=\"size-full wp-image-52 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-20.png\" alt=\"\" width=\"499\" height=\"297\" \/>\r\n\r\n&nbsp;\r\n\r\n<\/div>\r\n<div>\r\n\r\n<img class=\"size-full wp-image-53 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-21.png\" alt=\"\" width=\"656\" height=\"594\" \/>\r\n\r\n<\/div>\r\n<div>\r\n\r\n<img class=\"size-full wp-image-54 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-22.png\" alt=\"\" width=\"622\" height=\"290\" \/>\r\n\r\n<img class=\"size-full wp-image-55 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-23.png\" alt=\"\" width=\"348\" height=\"305\" \/>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">If the point on the theoretical line is equidistant from either of the possible pixel locations then either of the pixels could be plotted.<\/p>\r\n&nbsp;\r\n\r\nNow the algorithm steps can be summarized as follows for the case when |m|&lt;=1\r\n<ul>\r\n \t<li>Input the two end points<\/li>\r\n \t<li>Compute P0<\/li>\r\n \t<li>Check cases depending on the sign of P0<\/li>\r\n \t<li>Continue with the next decision parameters till the end of the line is reached<\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">All this is well only for lines with slopes &lt;1. What about other line types? Now let\u2019s summarize the equations as below,<\/p>\r\n\r\n<\/div>\r\n<img class=\"size-full wp-image-56 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-24.png\" alt=\"\" width=\"549\" height=\"451\" \/>\r\n<div>\r\n\r\n&nbsp;\r\n\r\n<img class=\"size-full wp-image-57 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-25.png\" alt=\"\" width=\"542\" height=\"521\" \/>\r\n\r\n<\/div>\r\n&nbsp;\r\n\r\n<strong style=\"text-align: initial;font-size: 1em\">Summary:<\/strong>\r\n<div>\r\n\r\n&nbsp;\r\n\r\nWe have discussed the Bresenham\u2019s line drawing procedure.\r\n\r\n<\/div>\r\n<img class=\"size-full wp-image-58 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-26.png\" alt=\"\" width=\"654\" height=\"226\" \/>\r\n\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><strong>you can view video on Bresenham\u2019s Line drawing procedure<\/strong><\/td>\r\n<td><a href=\"https:\/\/youtu.be\/npve6wRF1uQ\" target=\"_blank\" rel=\"noopener\"><img class=\"alignnone wp-image-120\" src=\"http:\/\/epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/2018\/11\/download.png\" alt=\"\" width=\"36\" height=\"36\" \/><\/a><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>","rendered":"<div><span style=\"float: right\"><a href=\"https:\/\/youtu.be\/npve6wRF1uQ\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"http:\/\/epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/2018\/11\/download.png\" alt=\"epgp books\" width=\"75px\" height=\"75px;\" \/><\/a><br \/>\n<\/span><\/div>\n<div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Learning Objectives:<\/strong><\/p>\n<ul>\n<li>Understand the theory behind Bresenham\u2019s Line drawing procedure<\/li>\n<li>Prove the advantages of Bresenham\u2019s procedure over DDA procedure<\/li>\n<li>Solve example problem for better understanding of the concepts<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">In this module, let\u2019s focus on Bresenham\u2019s line drawing procedure which is superior to DDA procedure as this avoids floating point calculations and gives a better approximation for the theoretical line.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Bresenham is a scientist and is popular for his contributions to line drawing and circle drawing procedures, and few others, which are not of our interest.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Assume a line with slope &lt;1, the same discussion that we had during DDA procedure is still valid here, i.e. sample the line along x-axis at unit x-intervals if the line slopes are &lt;=1 otherwise sample the line along y-axis.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-50 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-18.png\" alt=\"\" width=\"209\" height=\"134\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-18.png 209w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-18-65x42.png 65w\" sizes=\"auto, (max-width: 209px) 100vw, 209px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Let\u2019s start our assumptions with a line whose slope &lt;1 i.e. the line is more inclined towards x-axis, so it is obvious to sample the line along x-axis at unit x-intervals and compute the corresponding y values. Also that to compute next points on a line, we always starts with a known point on the line and tries computing the next unknown point on the line using recursive equations.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">So the next x i.e. xk+1=xk+1 and the next y i.e. yk+1 is to be computed. Let the known plotted point on the line be (xk,yk).<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Before we get into the derivation lets understand the underlying principle of Bresenham\u2019s procedure. To compute the next point on the line (Xk+1, Yk+1), a value called \u2018<em>decision parameter<\/em>\u2019 is computed. Based on the result a pixel is chosen for plotting.<\/p>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-51 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-19.png\" alt=\"\" width=\"219\" height=\"175\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-19.png 219w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-19-65x52.png 65w\" sizes=\"auto, (max-width: 219px) 100vw, 219px\" \/><\/p>\n<div>\n<p style=\"text-align: justify\">As shown in the figure above let the line shown be the theoretical line and we need to find the best possible approximation for this by computing Bresenham\u2019s line. For the next X position, Xk+1, the corresponding Y value could not be plotted as the position (Xk+1, y) does not exist on the monitor. We have to choose between Yk and Yk+1. i.e. next position to be plotted is either (Xk+1, Yk) or (Xk+1, Yk+1). Now how do we decide among the two choices. The answer is, compute the vertical difference between the possible pixel position and the position on the true theoretical line which is.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Let dlower be the vertical difference between the position (y) on theoretical line and the lower pixel (yk) and dupper be the vertical difference between the position (y) on theoretical line and the upper pixel (yk+1). As evident if dlower is &lt; dupper the theoretical line is closer to the lower pixel so choose position (Xk+1, Yk) otherwise choose position. The difference between dlower and dupper is considered as \u2018decision parameter\u2019, as the sign of the difference operation helps us decide what y coordinate position is to be chosen for the next x.<\/p>\n<ul>\n<li>\u2018Decision parameter\u2019 referred to as <em>p<\/em><em>k<\/em> helps us decide which of the pixels is to be chosen<\/li>\n<li>Whichever pixel position is close to the theoretical line, that pixel is chosen.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>i.e. next X is\u00a0\u00a0 Xk+1 = Xk+1, and next Y is\u00a0 Yk+1=Yk or Yk+1 depending on the sign of pk.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Let\u2019s derive those recursive equations of the Bresenham\u2019s procedure. To start with we use slope-intercept form of line equation. Having known the position (xk,yk) on the line, the next x position would be xk+1. From the slope-intercept form of line equation, for the next x position we have<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-52 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-20.png\" alt=\"\" width=\"499\" height=\"297\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-20.png 499w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-20-300x179.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-20-65x39.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-20-225x134.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-20-350x208.png 350w\" sizes=\"auto, (max-width: 499px) 100vw, 499px\" \/><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-53 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-21.png\" alt=\"\" width=\"656\" height=\"594\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-21.png 656w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-21-300x272.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-21-65x59.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-21-225x204.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-21-350x317.png 350w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/p>\n<\/div>\n<div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-54 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-22.png\" alt=\"\" width=\"622\" height=\"290\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-22.png 622w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-22-300x140.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-22-65x30.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-22-225x105.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-22-350x163.png 350w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-55 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-23.png\" alt=\"\" width=\"348\" height=\"305\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-23.png 348w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-23-300x263.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-23-65x57.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-23-225x197.png 225w\" sizes=\"auto, (max-width: 348px) 100vw, 348px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">If the point on the theoretical line is equidistant from either of the possible pixel locations then either of the pixels could be plotted.<\/p>\n<p>&nbsp;<\/p>\n<p>Now the algorithm steps can be summarized as follows for the case when |m|&lt;=1<\/p>\n<ul>\n<li>Input the two end points<\/li>\n<li>Compute P0<\/li>\n<li>Check cases depending on the sign of P0<\/li>\n<li>Continue with the next decision parameters till the end of the line is reached<\/li>\n<\/ul>\n<p style=\"text-align: justify\">All this is well only for lines with slopes &lt;1. What about other line types? Now let\u2019s summarize the equations as below,<\/p>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-56 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-24.png\" alt=\"\" width=\"549\" height=\"451\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-24.png 549w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-24-300x246.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-24-65x53.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-24-225x185.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-24-350x288.png 350w\" sizes=\"auto, (max-width: 549px) 100vw, 549px\" \/><\/p>\n<div>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-57 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-25.png\" alt=\"\" width=\"542\" height=\"521\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-25.png 542w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-25-300x288.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-25-65x62.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-25-225x216.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-25-350x336.png 350w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p><strong style=\"text-align: initial;font-size: 1em\">Summary:<\/strong><\/p>\n<div>\n<p>&nbsp;<\/p>\n<p>We have discussed the Bresenham\u2019s line drawing procedure.<\/p>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-58 aligncenter\" src=\"http:\/\/csp06.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/52\/2018\/07\/1-26.png\" alt=\"\" width=\"654\" height=\"226\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-26.png 654w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-26-300x104.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-26-65x22.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-26-225x78.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-content\/uploads\/sites\/52\/2018\/07\/1-26-350x121.png 350w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>you can view video on Bresenham\u2019s Line drawing procedure<\/strong><\/td>\n<td><a href=\"https:\/\/youtu.be\/npve6wRF1uQ\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-120\" src=\"http:\/\/epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/2018\/11\/download.png\" alt=\"\" width=\"36\" height=\"36\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"author":3,"menu_order":3,"template":"","meta":{"_acf_changed":false,"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":["dr-t-raghuveera"],"pb_section_license":""},"chapter-type":[],"contributor":[59],"license":[],"class_list":["post-47","chapter","type-chapter","status-publish","hentry","contributor-dr-t-raghuveera"],"part":3,"_links":{"self":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/pressbooks\/v2\/chapters\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/wp\/v2\/users\/3"}],"version-history":[{"count":7,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/pressbooks\/v2\/chapters\/47\/revisions"}],"predecessor-version":[{"id":599,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/pressbooks\/v2\/chapters\/47\/revisions\/599"}],"part":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/pressbooks\/v2\/parts\/3"}],"metadata":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/pressbooks\/v2\/chapters\/47\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/wp\/v2\/media?parent=47"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/pressbooks\/v2\/chapter-type?post=47"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/wp\/v2\/contributor?post=47"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp06\/wp-json\/wp\/v2\/license?post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}