diff options
Diffstat (limited to 'doc/html/coordsys.html')
-rw-r--r-- | doc/html/coordsys.html | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/doc/html/coordsys.html b/doc/html/coordsys.html index 8a9facf7d..86c4d9449 100644 --- a/doc/html/coordsys.html +++ b/doc/html/coordsys.html @@ -33,9 +33,9 @@ body { background: #ffffff; color: black; } -<p> A <a href="ntqpaintdevice.html">paint device</a> in TQt is a drawable 2D +<p> A <a href="tqpaintdevice.html">paint device</a> in TQt is a drawable 2D surface. <a href="tqwidget.html">TQWidget</a>, <a href="ntqpixmap.html">TQPixmap</a>, <a href="ntqpicture.html">TQPicture</a> and <a href="ntqprinter.html">TQPrinter</a> are all -paint devices. A <a href="ntqpainter.html">TQPainter</a> is an object which can draw on such +paint devices. A <a href="tqpainter.html">TQPainter</a> is an object which can draw on such devices. <p> The default coordinate system of a paint device has its origin at the top left corner. X increases to the right and Y increases downwards. @@ -49,20 +49,20 @@ left corner of a paint device. <p> The rectangle and the line were drawn by this code (with the grid added and colors touched up in the illustration): <p> <pre> - void MyWidget::paintEvent( <a href="qpaintevent.html">TQPaintEvent</a> * ) + void MyWidget::paintEvent( <a href="tqpaintevent.html">TQPaintEvent</a> * ) { - <a href="ntqpainter.html">TQPainter</a> p( this ); - p.<a href="ntqpainter.html#setPen">setPen</a>( darkGray ); - p.<a href="ntqpainter.html#drawRect">drawRect</a>( 1,2, 5,4 ); - p.<a href="ntqpainter.html#setPen">setPen</a>( lightGray ); - p.<a href="ntqpainter.html#drawLine">drawLine</a>( 9,2, 7,7 ); + <a href="tqpainter.html">TQPainter</a> p( this ); + p.<a href="tqpainter.html#setPen">setPen</a>( darkGray ); + p.<a href="tqpainter.html#drawRect">drawRect</a>( 1,2, 5,4 ); + p.<a href="tqpainter.html#setPen">setPen</a>( lightGray ); + p.<a href="tqpainter.html#drawLine">drawLine</a>( 9,2, 7,7 ); } </pre> <p> Note that all of the pixels drawn by drawRect() are inside the size specified (5*4 pixels). This is different from some toolkits; in TQt the size you specify exactly encompasses the pixels drawn. This -applies to all the relevant functions in <a href="ntqpainter.html">TQPainter</a>. +applies to all the relevant functions in <a href="tqpainter.html">TQPainter</a>. <p> Similarly, the drawLine() call draws both endpoints of the line, not just one. <p> Here are the classes that relate most closely to the coordinate @@ -71,7 +71,7 @@ system: <tr bgcolor="#f0f0f0"> <td valign="top"><a href="ntqpoint.html">TQPoint</a> <td valign="top">A single 2D point in the coordinate system. Most functions in TQt that deal with points can accept either a <a href="ntqpoint.html">TQPoint</a> argument -or two ints, for example <a href="ntqpainter.html#drawPoint">TQPainter::drawPoint</a>(). +or two ints, for example <a href="tqpainter.html#drawPoint">TQPainter::drawPoint</a>(). <tr bgcolor="#d0d0d0"> <td valign="top"><a href="tqsize.html">TQSize</a> <td valign="top">A single 2D vector. Internally, TQPoint and <a href="tqsize.html">TQSize</a> are the same, but a point is not the same as a size, so both classes exist. @@ -84,12 +84,12 @@ ints, for example <a href="tqwidget.html#setGeometry">TQWidget::setGeometry</a>( <td valign="top">An arbitrary set of points, including all the normal set operations, e.g. <a href="ntqregion.html#intersect">TQRegion::intersect</a>(), and also a less usual function to return a list of rectangles whose union is -equal to the region. <a href="ntqregion.html">TQRegion</a> is used e.g. by <a href="ntqpainter.html#setClipRegion">TQPainter::setClipRegion</a>(), <a href="tqwidget.html#repaint">TQWidget::repaint</a>() and <a href="qpaintevent.html#region">TQPaintEvent::region</a>(). -<tr bgcolor="#f0f0f0"> <td valign="top"><a href="ntqpainter.html">TQPainter</a> +equal to the region. <a href="ntqregion.html">TQRegion</a> is used e.g. by <a href="tqpainter.html#setClipRegion">TQPainter::setClipRegion</a>(), <a href="tqwidget.html#repaint">TQWidget::repaint</a>() and <a href="tqpaintevent.html#region">TQPaintEvent::region</a>(). +<tr bgcolor="#f0f0f0"> <td valign="top"><a href="tqpainter.html">TQPainter</a> <td valign="top">The class that paints. It can paint on any device with the -same code. There are differences between devices, <a href="ntqprinter.html#newPage">TQPrinter::newPage</a>() is a good example, but <a href="ntqpainter.html">TQPainter</a> works the +same code. There are differences between devices, <a href="ntqprinter.html#newPage">TQPrinter::newPage</a>() is a good example, but <a href="tqpainter.html">TQPainter</a> works the same way on all devices. -<tr bgcolor="#d0d0d0"> <td valign="top"><a href="ntqpaintdevice.html">TQPaintDevice</a> +<tr bgcolor="#d0d0d0"> <td valign="top"><a href="tqpaintdevice.html">TQPaintDevice</a> <td valign="top">A device on which TQPainter can paint. There are two internal devices, both pixel-based, and two external devices, <a href="ntqprinter.html">TQPrinter</a> and <a href="ntqpicture.html">TQPicture</a> (which records TQPainter commands to a file or other <a href="tqiodevice.html">TQIODevice</a>, and plays them back). Other @@ -97,7 +97,7 @@ devices can be defined. </table></center> <p> <h2> Transformations </h2> -<a name="2"></a><p> Although TQt's default coordinate system works as described above, <a href="ntqpainter.html">TQPainter</a> also supports arbitrary transformations. +<a name="2"></a><p> Although TQt's default coordinate system works as described above, <a href="tqpainter.html">TQPainter</a> also supports arbitrary transformations. <p> This transformation engine is a three-step pipeline, closely following the model outlined in books such as <a href="http://www.amazon.com/exec/obidos/ASIN/0201848406/trolltech/t">Foley & Van Dam</a> and the @@ -105,13 +105,13 @@ the model outlined in books such as coverage; here we give just a brief overview and an example. <p> The first step uses the world <a href="ntqwmatrix.html#TransformationMode">transformation matrix</a>. Use this matrix to orient and position your objects in your model. TQt provides -methods such as <a href="ntqpainter.html#rotate">TQPainter::rotate</a>(), <a href="ntqpainter.html#scale">TQPainter::scale</a>(), <a href="ntqpainter.html#translate">TQPainter::translate</a>() and so on to operate on this matrix. -<p> <a href="ntqpainter.html#save">TQPainter::save</a>() and <a href="ntqpainter.html#restore">TQPainter::restore</a>() save and restore this -matrix. You can also use <a href="ntqwmatrix.html">TQWMatrix</a> objects, <a href="ntqpainter.html#worldMatrix">TQPainter::worldMatrix</a>() and <a href="ntqpainter.html#setWorldMatrix">TQPainter::setWorldMatrix</a>() to store and +methods such as <a href="tqpainter.html#rotate">TQPainter::rotate</a>(), <a href="tqpainter.html#scale">TQPainter::scale</a>(), <a href="tqpainter.html#translate">TQPainter::translate</a>() and so on to operate on this matrix. +<p> <a href="tqpainter.html#save">TQPainter::save</a>() and <a href="tqpainter.html#restore">TQPainter::restore</a>() save and restore this +matrix. You can also use <a href="ntqwmatrix.html">TQWMatrix</a> objects, <a href="tqpainter.html#worldMatrix">TQPainter::worldMatrix</a>() and <a href="tqpainter.html#setWorldMatrix">TQPainter::setWorldMatrix</a>() to store and use named matrices. <p> The second step uses the window. The window describes the view boundaries in model coordinates. The matrix positions the <em>objects</em> -and <a href="ntqpainter.html#setWindow">TQPainter::setWindow</a>() positions the <em>window</em>, deciding what +and <a href="tqpainter.html#setWindow">TQPainter::setWindow</a>() positions the <em>window</em>, deciding what coordinates will be visible. (If you have 3D experience, the window is what's usually called projection in 3D.) <p> The third step uses the viewport. The viewport too, describes the view @@ -122,12 +122,12 @@ you are drawing, which is usually appropriate. For printing this function is vital, since very few printers can print over the entire physical page. <p> So each object to be drawn is transformed into model -coordinates using <a href="ntqpainter.html#worldMatrix">TQPainter::worldMatrix</a>(), then positioned -on the drawing device using <a href="ntqpainter.html#window">TQPainter::window</a>() and -<a href="ntqpainter.html#viewport">TQPainter::viewport</a>(). +coordinates using <a href="tqpainter.html#worldMatrix">TQPainter::worldMatrix</a>(), then positioned +on the drawing device using <a href="tqpainter.html#window">TQPainter::window</a>() and +<a href="tqpainter.html#viewport">TQPainter::viewport</a>(). <p> It is perfectly possible to do without one or two of the stages. If, -for example, your goal is to draw something scaled, then just using <a href="ntqpainter.html#scale">TQPainter::scale</a>() makes perfect sense. If your goal is to use a -fixed-size coordinate system, <a href="ntqpainter.html#setWindow">TQPainter::setWindow</a>() is +for example, your goal is to draw something scaled, then just using <a href="tqpainter.html#scale">TQPainter::scale</a>() makes perfect sense. If your goal is to use a +fixed-size coordinate system, <a href="tqpainter.html#setWindow">TQPainter::setWindow</a>() is ideal. And so on. <p> Here is a short example that uses all three mechanisms: the function that draws the clock face in the <a href="aclock-example.html">aclock/aclock.cpp</a> example. We @@ -135,23 +135,23 @@ recommend compiling and running the example before you read any further. In particular, try resizing the window to different sizes. <p> -<pre> void AnalogClock::drawClock( <a href="ntqpainter.html">TQPainter</a> *paint ) +<pre> void AnalogClock::drawClock( <a href="tqpainter.html">TQPainter</a> *paint ) { - <a name="x2275"></a> paint-><a href="ntqpainter.html#save">save</a>(); + <a name="x2275"></a> paint-><a href="tqpainter.html#save">save</a>(); </pre> <p> Firstly, we save the painter's state, so that the calling function is guaranteed not to be disturbed by the transformations we're going to use. -<p> <pre> <a name="x2277"></a> paint-><a href="ntqpainter.html#setWindow">setWindow</a>( -500,-500, 1000,1000 ); +<p> <pre> <a name="x2277"></a> paint-><a href="tqpainter.html#setWindow">setWindow</a>( -500,-500, 1000,1000 ); </pre> <p> We set the model coordinate system we want a 1000*1000 window where 0,0 is in the middle. -<p> <pre> <a name="x2278"></a> <a href="ntqrect.html">TQRect</a> v = paint-><a href="ntqpainter.html#viewport">viewport</a>(); +<p> <pre> <a name="x2278"></a> <a href="ntqrect.html">TQRect</a> v = paint-><a href="tqpainter.html#viewport">viewport</a>(); <a name="x2282"></a><a name="x2279"></a> int d = TQMIN( v.<a href="ntqrect.html#width">width</a>(), v.<a href="ntqrect.html#height">height</a>() ); </pre> <p> The device may not be square and we want the clock to be, so we find its current viewport and compute its shortest side. -<p> <pre> <a name="x2280"></a><a name="x2276"></a> paint-><a href="ntqpainter.html#setViewport">setViewport</a>( v.<a href="ntqrect.html#left">left</a>() + (v.<a href="ntqrect.html#width">width</a>()-d)/2, +<p> <pre> <a name="x2280"></a><a name="x2276"></a> paint-><a href="tqpainter.html#setViewport">setViewport</a>( v.<a href="ntqrect.html#left">left</a>() + (v.<a href="ntqrect.html#width">width</a>()-d)/2, <a name="x2281"></a> v.<a href="ntqrect.html#top">top</a>() + (v.<a href="ntqrect.html#height">height</a>()-d)/2, d, d ); </pre> <p> Then we set a new square viewport, centered in the old one. @@ -165,41 +165,41 @@ possible square that'll fit in the output device. <p> Next come three drawing blocks, one for the hour hand, one for the minute hand and finally one for the clock face itself. First we draw the hour hand: -<p> <pre> paint-><a href="ntqpainter.html#save">save</a>(); - <a name="x2274"></a> paint-><a href="ntqpainter.html#rotate">rotate</a>( 30*(time.hour()%12-3) + time.minute()/2 ); +<p> <pre> paint-><a href="tqpainter.html#save">save</a>(); + <a name="x2274"></a> paint-><a href="tqpainter.html#rotate">rotate</a>( 30*(time.hour()%12-3) + time.minute()/2 ); </pre> <p> We save the painter and then rotate it so that one axis points along the hour hand. <p> <pre> pts.setPoints( 4, -20,0, 0,-20, 300,0, 0,20 ); - <a name="x2271"></a> paint-><a href="ntqpainter.html#drawConvexPolygon">drawConvexPolygon</a>( pts ); + <a name="x2271"></a> paint-><a href="tqpainter.html#drawConvexPolygon">drawConvexPolygon</a>( pts ); </pre> <p> We set <em>pts</em> to a four-point polygon that looks like the hour hand at three o'clock, and draw it. Because of the rotation, it's drawn pointed in the right direction. -<p> <pre> <a name="x2273"></a> paint-><a href="ntqpainter.html#restore">restore</a>(); +<p> <pre> <a name="x2273"></a> paint-><a href="tqpainter.html#restore">restore</a>(); </pre> <p> We restore the saved painter, undoing the rotation. We could also call rotate( -30 ) but that might introduce rounding errors, so it's better to use save() and restore(). Next, the minute hand, drawn almost the same way: -<p> <pre> paint-><a href="ntqpainter.html#save">save</a>(); - paint-><a href="ntqpainter.html#rotate">rotate</a>( (time.minute()-15)*6 ); +<p> <pre> paint-><a href="tqpainter.html#save">save</a>(); + paint-><a href="tqpainter.html#rotate">rotate</a>( (time.minute()-15)*6 ); pts.setPoints( 4, -10,0, 0,-10, 400,0, 0,10 ); - paint-><a href="ntqpainter.html#drawConvexPolygon">drawConvexPolygon</a>( pts ); - paint-><a href="ntqpainter.html#restore">restore</a>(); + paint-><a href="tqpainter.html#drawConvexPolygon">drawConvexPolygon</a>( pts ); + paint-><a href="tqpainter.html#restore">restore</a>(); </pre> <p> The only differences are how the rotation angle is computed and the shape of the polygon. <p> The last part to be drawn is the clock face itself. <p> <pre> for ( int i=0; i<12; i++ ) { - <a name="x2272"></a> paint-><a href="ntqpainter.html#drawLine">drawLine</a>( 440,0, 460,0 ); - paint-><a href="ntqpainter.html#rotate">rotate</a>( 30 ); + <a name="x2272"></a> paint-><a href="tqpainter.html#drawLine">drawLine</a>( 440,0, 460,0 ); + paint-><a href="tqpainter.html#rotate">rotate</a>( 30 ); } </pre> <p> Twelve short hour lines at thirty-degree intervals. At the end of that, the painter is rotated in a way which isn't very useful, but we're done with painting so that doesn't matter. -<p> <pre> paint-><a href="ntqpainter.html#restore">restore</a>(); +<p> <pre> paint-><a href="tqpainter.html#restore">restore</a>(); } </pre> <p> The final line of the function restores the painter, so that the |