KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to fix this triangle rasterizer, but cannot make it work correctly. For some reason it only draws half of the triangles. void DrawTriangle(Point2D p0, Point2D p1, Point2D p2) { Point2D Top, Middle, Bottom; bool MiddleIsLeft; if (p0.y < p1.y) // case: 1, 2, 5 { if (p0.y < p2.y) // case: 1, 2 { if (p1.y < p2.y) // case: 1 { Top = p0; Middle = p1; Bottom = p2; MiddleIsLeft = true; } else // case: 2 { Top = p0; Middle = p2; Bottom = p1; MiddleIsLeft = false; } } else // case: 5 { Top = p2; Middle = p0; Bottom = p1; MiddleIsLeft = true; } } else // case: 3, 4, 6 { if (p0.y < p2.y) // case: 4 { Top = p1; Middle = p0; Bottom = p2; MiddleIsLeft = false; } else // case: 3, 6 { if (p1.y < p2.y) // case: 3 { Top = p1; Middle = p2; Bottom = p0; MiddleIsLeft = true; } else // case 6 { Top = p2; Middle = p1; Bottom = p0; MiddleIsLeft = false; } } } float xLeft, xRight; xLeft = xRight = Top.x; float mLeft, mRight; // Region 1 if(MiddleIsLeft) { mLeft = (Top.x - Middle.x) / (Top.y - Middle.y); mRight = (Top.x - Bottom.x) / (Top.y - Bottom.y); } else { mLeft = (Top.x - Bottom.x) / (Top.y - B
Tags (comma-separated)
Save Edits
Cancel