Sir, last sem due to you alone I survived algorithms. Now it seems you will help me survive Graphics as well. I desperately wish all teachers could explain like you!
I am sorry on 35:56 ... P=2dy-dx.... not p=2dx-dy .... This lecturer is greater than attending my normal class. Thank you... Also you are my great lecturer of Analysis of Algorithm. I have knowm TIME COMPLEXITY because of you only... THANK YOU!!
After 35;56 ,we will take dy,ex in if and else block as well. Because sir there is no variable in the algorithm as you have written in algorithm in if and else block ∆x, ∆y
Dr. Breshingham was impressed with my graphics programming back in the late 80s. He came to visit the IT department at Coastal Carolina. Never forgot that. He lives in Rock Hill or did at the time.
I have learned so much from you... cant thank you enough! I got your c++ course a while back, and just got your data structures course now. Cant wait to start :)
Great explanation. Thanks. @24.31 you should not skip that term as it will be needed to define the sign. However, in calculation of P[k+1], you will not need it as it is defined in terms of P[k] and P[k] takes care of this constant term.
These explanations are so clear because of the background order you follow Sir. Once we learn from you, we are less likely to forget because we know "why" it was done :) Thank you very much!
Fantastic. I thought I was going to have to derive this by myself as I only seen superficial descriptions on other videos. A full and complete derivation with example. Nice. Very pleased that I found this video.
Yesterday only I saw ur DDA line drawing algorithm video for the first time.. Ur way of explanation helps me to understand the concept well.. Thank you sir.. Pls make more videos based on circle and ellipse generating algorithms, 2D geometric transformations, matrix representations, 2D viewing in graphics..
One of the best explanations and instructors in the web. He has additional C++ courses and algorithms in C++ courses which are one of the best in the net.
You're correct. He should have given this clarification. Otherwise it's very confusing. Also at 29:41 it should be Pk >= 0 instead of P next - Pk >= 0.
@@praveensharma4014 I took like 1 hour to get around how Pnext - Pk < 0. I think he was trying to say, Pnext - (pk if less - 0) and Pnext - (pk if greater or equal to 0).
28:29 Why Pk+1 - Pk < 0 means we stayed on the y value.Why it means that we were not incrementing? I cannot catch that. Why didn't u write that if Pk < 0 then we do something and if Pk > 0 then we do something. What is about this Pk+1 - Pk < 0?
Sir, I am interested in computer graphics. I love your lecture very much. Your lecture is very comprehensive and easy for me to understand. Please keep on making similar video, thanks!!!
from 24:18 there appears to be a redundant explanation about constant which confused me. P[k] needn't change at all. and if condition of 29:46 should be just whether P[k] is negative or positive to be clear. overall, thank you for your video.
This was very helpful and easy to understand video...thankyou sir❤. Can you plz make a playlist on computer graphics and multimedia subject. I literally understood the algorithm in one go..🙌🙌
Very helpful. I had to create a vision check system on a 2D grid on a game I was working on, based on this algorithm. First I tried with wikipedia, and found out that the pseudocode there is incorrect. This video helped me to understand how the algorithm works. Once I found out is was trivial to tweak it for all 4 octants. Thank you very much.
at 31:19 he said if pk < 1 we follow first one, but see as we know if pnext-pk < 0 we follow this, how pk be less than zero now...? have you understood this?
Sir pls make some vedios on midpoint circle drawing algorithm and midpoint ellipse drawing algorithm am really waiting for ur lecture in a short period of time
For anyone trying to figure out how to implement m > 1, here is a c++ implementation i created from the pseudo code on the wiki Just replace all the classes that's not found(like vector and color, these are classes i created) void DrawPane::renderLine(Vector2f a, Vector2f b, int color) { if(abs(b.getY() - a.getY()) < abs(b.getX() - a.getX())){ if(a.getX() > b.getX()){ renderLineLow(b, a, color); }else{ renderLineLow(a, b, color); } }else{ if(a.getY() > b.getY()){ renderLineHigh(b, a, color); }else{ renderLineHigh(a, b, color); } } } void DrawPane::clearCanvas() { std::fill_n(m_canvas_data, m_width * m_height, 0); } void DrawPane::renderPolygon(Vector2f f, Vector2f f1, Vector2f f2) { renderLine(f, f1, Color::RED); renderLine(f1, f2, Color::GREEN); renderLine(f2, f, Color::BLUE); } void DrawPane::renderLineLow(Vector2f a, Vector2f b, int color) { float dx = b.getX() - a.getX(); float dy = b.getY() - a.getY(); float p = 2*dy -dx; float i = 1; if(dy < 0){ dy = -dy; i = -1; } int y = a.getY(); for (int x = a.getX(); x < b.getX(); x++) { m_canvas_data[y * m_width + x] = color; if (p > 0){//Set bottom pixel p -= 2*dx; y += i; } p = p + 2*dy; } } void DrawPane::renderLineHigh(Vector2f a, Vector2f b, int color) { float dx = b.getX() - a.getX(); float dy = b.getY() - a.getY(); float p = 2*dx -dy; float i = 1; if(dx < 0){ dx = -dx; i = -1; } int x = a.getX(); for (int y = a.getY(); y < b.getY(); y++) { m_canvas_data[y * m_width + x] = color; if (p > 0) {//Set bottom pixel p -= 2*dy; x += i; } p += 2*dx; } }
at 31:19 he said if pk < 1 we follow first one, but see as we know if pnext-pk < 0 we follow this, how pk be less than zero now...? have you understood this?
sir you are really great .........your teaching influence every students........I was totally satisfied with your lectures......i hope you will make more videos in computer graphics too
Thank you sir....for great explanation....plz make videos on other graphical theorem's like polygon filling and boundry fill algorithm.....plz sir...my exams are starting from 30 March.....plz help me sir....
Amazing lecture, would love to get explanation on how to transform the algorythm for octants other than first, but i guess i'll be able to do that myself :D
@28:28 We are assigning the value for P next based on the difference of Pnext and P ,but before knowing the value of Pnext , how do we make the judgement, is this some sort of prediction method, where we backtrack on contradiction? I am very confused
Sir, last sem due to you alone I survived algorithms. Now it seems you will help me survive Graphics as well. I desperately wish all teachers could explain like you!
Bro i have sem exams can you suggest some good youtube channel for computer graphics please reply bro i don't know anything for exam
@@abc-ym4zs th-cam.com/play/PLYwpaL_SFmcAtxMe7ahYC4ZYjQHun_b-T.html
@@abc-ym4zsdid you found any?
@@abc-ym4zs 5 minutes engineering is a great channel for studying CG
@@abc-ym4zs1$11
This is the best so far I have seen on Bresenham's algorithm explanation. You deserve an accolades👍
I am sorry on 35:56 ... P=2dy-dx.... not p=2dx-dy .... This lecturer is greater than attending my normal class. Thank you... Also you are my great lecturer of Analysis of Algorithm. I have knowm TIME COMPLEXITY because of you only... THANK YOU!!
This took me 3 hours to figure out ':D
this is a error right? its always P=2dy-dx
After 35;56 ,we will take dy,ex in if and else block as well. Because sir there is no variable in the algorithm as you have written in algorithm in if and else block ∆x, ∆y
Yes, it is an error.
Yes! There was an error but if you take a look at 38:06 the code is corrected.
People like you are blessed with a beautiful skill, "Teaching". Thanks for being such a good teacher to all of us.
Dr. Breshingham was impressed with my graphics programming back in the late 80s. He came to visit the IT department at Coastal Carolina. Never forgot that. He lives in Rock Hill or did at the time.
I have learned so much from you... cant thank you enough!
I got your c++ course a while back, and just got your data structures course now. Cant wait to start :)
Where did u get the course from
@@princegirish1991 See the description.
@@SATYAMYADAV-xy3mx support Mr. Bari buddy
Algo explaination starts at 14:46 . Thank me later
thanks bhai
thanks, bro
thanks fam
thnx buddy
My hero
Great explanation. Thanks.
@24.31 you should not skip that term as it will be needed to define the sign. However, in calculation of P[k+1], you will not need it as it is defined in terms of P[k] and P[k] takes care of this constant term.
sir, literally you are the most amazing teacher of all the teachers I have seen on youtube.thank you very much sir for your efforts
you are the only one who explaind derivation of breshanham algorithm on youtube even my university teacher didnt explained it
These explanations are so clear because of the background order you follow Sir.
Once we learn from you, we are less likely to forget because we know "why" it was done :)
Thank you very much!
I've been frustrated with this concept for a bit, but you're explanations are fantastic. Thank you!!!
Best explanation of Bresenham's algorithm I have ever heard.
Fantastic. I thought I was going to have to derive this by myself as I only seen superficial descriptions on other videos. A full and complete derivation with example. Nice. Very pleased that I found this video.
Sir ,pls make more videos on computer graphics ...
The best teacher i have ever seen,the way you explain is awsome.
I love you sir Got good marks in DAA all thanks to your videos
Yesterday only I saw ur DDA line drawing algorithm video for the first time.. Ur way of explanation helps me to understand the concept well.. Thank you sir.. Pls make more videos based on circle and ellipse generating algorithms, 2D geometric transformations, matrix representations, 2D viewing in graphics..
yes
Bro do you find any good youtube channel for computer graphics please tell bro I have sem exams
Dear sir I have cleared my exams after taking lectures from ur videos Thank you so much sir...😀
Of course sir 😇
i'm watching this in 2024... and really grateful for every word in your explanation sir my frustration just got away , !!!!
Nothing clear explanation like this ever seen, good job sir
sir you are really great
especially your way of explanation i haven't seen anyone like you on youtube
One of the best explanations and instructors in the web. He has additional C++ courses and algorithms in C++ courses which are one of the best in the net.
Sir I understood the DDA algorithm. Thanks a lot. And wishing you a happy Teachers Day.
28:51 I have a doubt , instead of " if (Pnext - Pk
I literally scrolled down to see this!!
You're correct. He should have given this clarification. Otherwise it's very confusing. Also at 29:41 it should be Pk >= 0 instead of P next - Pk >= 0.
Imo we will check pk for first operation but after that We will pk+1-pk
@@praveensharma4014 I took like 1 hour to get around how Pnext - Pk < 0. I think he was trying to say, Pnext - (pk if less - 0) and Pnext - (pk if greater or equal to 0).
MORE CONTENT ON COMPUTER GRAPHICS NEEDED!!! EITHER AS UDEMY COURSE OR TH-cam VIDEO.
Best explanation ever for bresenham’s algorithm.
This man is owsome Singham....full of knowledge...
sir, no one can teach like u. thanks God.. to give us teacher like u......
The views are more than the likes, why is this so?? Can't we just like for his efforts?
I found it useful sir.Thank you for your efforts!! ❤
Thank you, sir. I now understand the DDA algorithm. Your explanation will help me get an A in computer graphics.
Thing is i am really enjoy your lecture so please teach everything you learn in your entire life
Sir you are outstanding!!!
You made it crystal clear...thank you so much for putting your efforts.😊
You're a lifesaver sir. The clear cut xplanation ever. Thank u much sir
*Thank you so much...now i clearly understood about Bresenham's Algo.* 👍😍
28:29 Why Pk+1 - Pk < 0 means we stayed on the y value.Why it means that we were not incrementing? I cannot catch that. Why didn't u write that if Pk < 0 then we do something and if Pk > 0 then we do something. What is about this Pk+1 - Pk < 0?
this is just awesome, finally, i understood an algorithm, and if I understood then anybody can. thank you so much.
Sir, I am interested in computer graphics. I love your lecture very much. Your lecture is very comprehensive and easy for me to understand. Please keep on making similar video, thanks!!!
Sir very clear and detail explanation. Thankyou for explaining algorithm in such an easy way.
amazing tutor and amazing teacher Ihave ever seen thanks sir from Ethiopia
Hey, i am studying Virtual Reality and you helped me with graphics do much.. thanks ❤
At 31:14 why are we saying if Pk=0 for the lower equation, when it actually depends on the difference of Pk+1 and Pk?
from 24:18 there appears to be a redundant explanation about constant which confused me.
P[k] needn't change at all.
and if condition of 29:46 should be just whether P[k] is negative or positive to be clear.
overall, thank you for your video.
Lecture was great Sir.
Thank you for making our B.Tech. Easy.
i have't seen ever like you ,you have agreat teaching skill
give medal to this great man................................................................
The best explanation I've found
May god bless this teacher! So much valuable content for free! Thanks! Thanks!
you're saving my semester
Us bro us
Completly understood the algorithm, thank you very much sir ❤
Blessed are those who are your students. Why my university teachers are not like you?
Thankyou sir for explaining in such a simple way..
Sir thank you for straightforward explanation with good english speaking. i subbed to your channel
Very good job sir. It's very easy to learn while ur teaching. Thank you sir.
sir u r the best on algorithms
Thank you very much sir, I can now pass my computer class sir. Thanks sir.
Excellent
Your teaching is simply perfect.
At 28:30
It should've been Pk which you should be checking for less than 0 or not right anyone?
9:20 what a perfection man !!!!!
Excellent Exlplanation on entire YT
Best teacher ever , forever grateful ❤
This was very helpful and easy to understand video...thankyou sir❤. Can you plz make a playlist on computer graphics and multimedia subject. I literally understood the algorithm in one go..🙌🙌
THANK YOU!!! Been struggling for so long, this made is clear and understandable
Thank you sir it is very useful😳😇and it's very helpful for my exams thank u so much sir
One of the best Teachers.
Great..great...great....simple and amazing explaination....i did not get bored even 1 sec.....superbbb.
Very helpful. I had to create a vision check system on a 2D grid on a game I was working on, based on this algorithm. First I tried with wikipedia, and found out that the pseudocode there is incorrect. This video helped me to understand how the algorithm works. Once I found out is was trivial to tweak it for all 4 octants. Thank you very much.
You are a very good teacher sir❤
your lecture is very exclusive i have never seen such lecture.
Thank you Abdul Bari! Your lessons are very useful.
Again, I'm learning a computer science subject from an Indian guy. Thank you
Sir you are a god sent for us, thank you sir 😭😭
at 31:19 he said if pk < 1 we follow first one, but see as we know if pnext-pk < 0 we follow this, how pk be less than zero now...?
have you understood this?
@@sagaralwani75 same issue it should be Pk>0 for 1st one
My professor abdul bari thank you so much for your hard work
Sir pls make some vedios on midpoint circle drawing algorithm and midpoint ellipse drawing algorithm am really waiting for ur lecture in a short period of time
Thank you soo much.U made the concept crystal clear..TYSM❤️❤️
This video is so great and easy to understand. Thank you!
For anyone trying to figure out how to implement m > 1, here is a c++ implementation i created from the pseudo code on the wiki
Just replace all the classes that's not found(like vector and color, these are classes i created)
void DrawPane::renderLine(Vector2f a, Vector2f b, int color) {
if(abs(b.getY() - a.getY()) < abs(b.getX() - a.getX())){
if(a.getX() > b.getX()){
renderLineLow(b, a, color);
}else{
renderLineLow(a, b, color);
}
}else{
if(a.getY() > b.getY()){
renderLineHigh(b, a, color);
}else{
renderLineHigh(a, b, color);
}
}
}
void DrawPane::clearCanvas() {
std::fill_n(m_canvas_data, m_width * m_height, 0);
}
void DrawPane::renderPolygon(Vector2f f, Vector2f f1, Vector2f f2) {
renderLine(f, f1, Color::RED);
renderLine(f1, f2, Color::GREEN);
renderLine(f2, f, Color::BLUE);
}
void DrawPane::renderLineLow(Vector2f a, Vector2f b, int color) {
float dx = b.getX() - a.getX();
float dy = b.getY() - a.getY();
float p = 2*dy -dx;
float i = 1;
if(dy < 0){
dy = -dy;
i = -1;
}
int y = a.getY();
for (int x = a.getX(); x < b.getX(); x++) {
m_canvas_data[y * m_width + x] = color;
if (p > 0){//Set bottom pixel
p -= 2*dx;
y += i;
}
p = p + 2*dy;
}
}
void DrawPane::renderLineHigh(Vector2f a, Vector2f b, int color) {
float dx = b.getX() - a.getX();
float dy = b.getY() - a.getY();
float p = 2*dx -dy;
float i = 1;
if(dx < 0){
dx = -dx;
i = -1;
}
int x = a.getX();
for (int y = a.getY(); y < b.getY(); y++) {
m_canvas_data[y * m_width + x] = color;
if (p > 0) {//Set bottom pixel
p -= 2*dy;
x += i;
}
p += 2*dx;
}
}
Best explanation on youtube💓
at 31:19 he said if pk < 1 we follow first one, but see as we know if pnext-pk < 0 we follow this, how pk be less than zero now...?
have you understood this?
@@sagaralwani75 here he used it as a general term...by Pk he meant the value of Pk (decision parameter)
But, how he decides pk
@@sagaralwani75 at 31:19 when he said pk
Waha nahi bata rakha h, ek baar wapis dekhiye aap
Nice explanation... examples are explained very easily and carefully...
Dear sir do compiler design tutorials and the way you explain is awesome
Thanks you sir your video is so easy to understand
SEMA sir... Your explanation is very much clear
why Pnext - Pk?? Pnext will also be dependent on d1 and d2??
sir you are really great .........your teaching influence every students........I was totally satisfied with your lectures......i hope you will make more videos in computer graphics too
yey dekhne ke baad muje trigonometry easy lagne lgi hai
as we can show on 37:39 that tou use in red color marker (D=delta) p=2Dy-Dx but in algo you use p=2dx-dy but as i know dx=x2-x1 while Dy=y2-y1
Sir, your explanation is so clear that you could consider opening a specific course on computer graphics or digital image processing. ❤
Thank you sir....for great explanation....plz make videos on other graphical theorem's like polygon filling and boundry fill algorithm.....plz sir...my exams are starting from 30 March.....plz help me sir....
Amazing lecture, would love to get explanation on how to transform the algorythm for octants other than first, but i guess i'll be able to do that myself :D
Sir pls add bresehams circle drawing algorithm 👍your videos are so helpful to us to easily clear the concepts🙏
@28:28 We are assigning the value for P next based on the difference of Pnext and P ,but before knowing the value of Pnext , how do we make the judgement, is this some sort of prediction method, where we backtrack on contradiction? I am very confused
Kudos to you sir!! one doubt the algorith you wrote is only when m < 1 for m > 1 we have to do the same just y and x reversed. ?
Sir you are super explaining unbelievable.
algo is complex but this video made it simple
Easily explained.....Thank you sir
As usual, great explanation.
Sir your lectures are too good.. Thank you sir
explanation outstanding sir .you make my day sir .stay blessed .
Good explanation 👍🏻👍🏻thank u so much sir
You are amazing. Thank u so much for this video ❤