dear imgui을 사용하여 두 베 지어 곡선 사이의 영역을 채우려면 어떻게해야합니까? 친애하는 imgui를 사용하여 두 베 지어 곡선 사이의 영역을 채우는 방법
나는이 같은 ImDrawList API를 사용하여 곡선을 그렸다 : 편집 ImVec2 p0(10, 100); ImVec2 c1(110, 50); ImVec2 p1(210, 100);
ImVec2 q0(10, 200); ImVec2 c2(110, 100); ImVec2 q1(210, 200);
auto col = IM_COL32(0,255,255, 255);
ImDrawList* draw_list = ImGui::GetWindowDrawList();
draw_list->AddBezierCurve(p0, c1, c1, p1, col, 1.0f);
draw_list->AddBezierCurve(q0, c2, c2, q1, col, 1.0f);
// I can close the curves, visually, with these lines
draw_list->AddLine(p0, q0, col, 1.0f);
draw_list->AddLine(p1, q1, col, 1.0f);
:
나는 내가 원하는 경로를 그립니다 상태 API를 사용하고 내가이 길을 채우기 위해 함수를 호출 . 여기에 코드입니다 : draw_list->PathLineTo(p0);
draw_list->PathBezierCurveTo(c1, c1, p1);
draw_list->PathLineTo(q1);
draw_list->PathBezierCurveTo(c2, c2, q0);
draw_list->PathFillConvex(col);
그러나 당신이 볼 수있는 뭔가 문제가있다 :
정확한 형상은 흰색으로 그려됩니다.
감사합니다. 스캔 라인 알고리즘을 찾고 imgui를 사용하여 구현을 찾았습니다 : https://github.com/ocornut/imgui/issues/760. – user3762200