From: Vadim Zeitlin Date: Sun, 29 Feb 2004 23:31:02 +0000 (+0000) Subject: docs and example for wxDC::DrawPolyPolygon() (patch 882189) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/163dc80eff2faed2c3c1fb3ee6b46eb5ae9d70f9?ds=sidebyside docs and example for wxDC::DrawPolyPolygon() (patch 882189) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/dc.tex b/docs/latex/wx/dc.tex index b42932d2ff..89169e5225 100644 --- a/docs/latex/wx/dc.tex +++ b/docs/latex/wx/dc.tex @@ -395,11 +395,34 @@ of wxPoint objects.} \membersection{wxDC::DrawPolyPolygon}\label{wxdcdrawpolypolygon} -\func{void}{DrawPolyPolygon}{\param{int }{n}, \param{int }{start[]}, \param{wxPoint }{points[]}, \param{wxCoord }{xoffset}, \param{wxCoord }{yoffset}, \param{int }{fillStyle = \texttt{wxODDEVEN\_RULE}}} +\func{void}{DrawPolyPolygon}{\param{int}{ n}, \param{int}{ count[]}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\ + \param{int }{fill\_style = wxODDEVEN\_RULE}} + +Draws two or more filled polygons using an array of {\it points}, adding the +optional offset coordinates. + +Notice that for the platforms providing a native implementation +of this function (Windows and PostScript-based wxDC currently), this is more +efficient than using \helpref{DrawPolygon}{wxdcdrawpolygon} in a loop. + +{\it n} specifies the number of polygons to draw, the array {\it count} of size +{\it n} specifies the number of points in each of the polygons in the +{\it points} array. + +The last argument specifies the fill rule: {\bf wxODDEVEN\_RULE} (the default) +or {\bf wxWINDING\_RULE}. + +The current pen is used for drawing the outline, and the current brush for +filling the shape. Using a transparent brush suppresses filling. + +The polygons maybe disjoint or overlapping. Each polygon specified in a call to +{\bf DrawPolyPolygon} must be closed. Unlike polygons created by the +\helpref{DrawPolygon}{wxdcdrawpolygon} member function, the polygons created by +{\bf DrawPolyPolygon} are not closed automatically. + +\pythonnote{Not implemented yet} -Draw many polygons at once. For the platforms providing a native implementation -of this function (Windows and PostScript-based wxDC), this is more efficient -than using \helpref{DrawPolygon}{wxdcdrawpolygon} in a loop. +\perlnote{Not implemented yet} \membersection{wxDC::DrawPoint}\label{wxdcdrawpoint} diff --git a/samples/drawing/drawing.cpp b/samples/drawing/drawing.cpp index bf43a853b0..ac792382f8 100644 --- a/samples/drawing/drawing.cpp +++ b/samples/drawing/drawing.cpp @@ -424,9 +424,25 @@ void MyCanvas::DrawTestPoly(wxDC& dc) _T("hatched"), 10, 10); dc.DrawText(_T("except for the central region and the right ") _T("one entirely hatched"), 10, 30); - - dc.DrawPolygon(WXSIZEOF(star), star); - dc.DrawPolygon(WXSIZEOF(star), star, 160, 0, wxWINDING_RULE); + dc.DrawText(_T("The third star only has a hatched outline"), 10, 50); + + dc.DrawPolygon(WXSIZEOF(star), star, 0, 30); + dc.DrawPolygon(WXSIZEOF(star), star, 160, 30, wxWINDING_RULE); + + wxPoint star2[10]; + star2[0] = wxPoint(0, 100); + star2[1] = wxPoint(-59, -81); + star2[2] = wxPoint(95, 31); + star2[3] = wxPoint(-95, 31); + star2[4] = wxPoint(59, -81); + star2[5] = wxPoint(0, 80); + star2[6] = wxPoint(-47, -64); + star2[7] = wxPoint(76, 24); + star2[8] = wxPoint(-76, 24); + star2[9] = wxPoint(47, -64); + int count[2] = {5, 5}; + + dc.DrawPolyPolygon(WXSIZEOF(count), count, star2, 450, 150); } void MyCanvas::DrawTestLines( int x, int y, int width, wxDC &dc )