# How to fill a triangle using the LCD5110 Graph library?

Good day! I'm currently trying to create a small 3D engine using C++, an Arduino UNO as well as a Nokia 5110 display with a library. Now I have successfully drawn a cube using triangles, but I want to fill the triangles to add proper lighting. My method for drawing triangles is the following:

LCD5110 lcd(8,9,10,12,11);

void DrawTriangle(int x1, int y1, int x2, int y2, int x3, int y3) {
lcd.drawLine(x1, y1, x2, y2);
lcd.drawLine(x2, y2, x3, y3);
lcd.drawLine(x3, y3, x1, y1);
}


My library hasn't got a triangle draw or fill method unfortunately. I have no idea how I could fill a triangle so I hope for help.

NOTE NR.2: I have already asked this question at StackOverflow but I haven't got a good answer so I will try it again.

• It looks like nobody is answering... – Leocat Jan 3 at 15:55
• That is most likely because there is no good answer. If your library doesn't provide a draw filled polygon method you have to draw it yourself. Ok, this is a standard algorithm in computer graphics but it's not easy to explain. E.g. have not enough time to think about how to explain it in a few words. But I can point you to an easy to understand algorithm that is called the "flood fill" algorithm. If I recall correctly there is a C++ implementation called FloodSpill. – Peter Paul Kiefer Jan 3 at 16:07
• I will take a look at FloodSpill. – Leocat Jan 3 at 16:13
• As I said in the comments of you answer: If the given solution works for you and performance doesn't matter, your solution is much better than my proposal. But don't forget to add the } to the code below. As it might confuse other that want to use your solution. – Peter Paul Kiefer Jan 3 at 16:19

for(int x = x1; x<=x2; x++) {