⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qwt__plot__svgitem_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<a name="l00147"></a>00147 <span class="preprocessor">#if QT_VERSION &gt;= 0x040100</span><a name="l00148"></a>00148 <span class="preprocessor"></span><a name="l00150"></a>00150 <span class="keyword">const</span> QSvgRenderer &amp;QwtPlotSvgItem::renderer()<span class="keyword"> const</span><a name="l00151"></a>00151 <span class="keyword"></span>{<a name="l00152"></a>00152     <span class="keywordflow">return</span> d_data-&gt;renderer;<a name="l00153"></a>00153 }<a name="l00154"></a>00154 <a name="l00156"></a>00156 QSvgRenderer &amp;QwtPlotSvgItem::renderer()<a name="l00157"></a>00157 {<a name="l00158"></a>00158     <span class="keywordflow">return</span> d_data-&gt;renderer;<a name="l00159"></a>00159 }<a name="l00160"></a>00160 <span class="preprocessor">#endif</span><a name="l00161"></a>00161 <span class="preprocessor"></span><a name="l00170"></a><a class="code" href="class_qwt_plot_svg_item.html#92bad3b08f42f1ac9399b48b734b4c44">00170</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_svg_item.html#92bad3b08f42f1ac9399b48b734b4c44">QwtPlotSvgItem::draw</a>(QPainter *painter,<a name="l00171"></a>00171     <span class="keyword">const</span> <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> &amp;xMap, <span class="keyword">const</span> <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> &amp;yMap,<a name="l00172"></a>00172     <span class="keyword">const</span> QRect &amp;canvasRect)<span class="keyword"> const</span><a name="l00173"></a>00173 <span class="keyword"></span>{<a name="l00174"></a>00174     <span class="keyword">const</span> QwtDoubleRect cRect = <a class="code" href="class_qwt_plot_item.html#913adffa4cb6914f3248b7157b9bbf33">invTransform</a>(xMap, yMap, canvasRect);<a name="l00175"></a>00175     <span class="keyword">const</span> QwtDoubleRect bRect = <a class="code" href="class_qwt_plot_svg_item.html#6d93e375e320cef36e00e88a8d9b7b36">boundingRect</a>();<a name="l00176"></a>00176     <span class="keywordflow">if</span> ( bRect.isValid() &amp;&amp; cRect.isValid() )<a name="l00177"></a>00177     {<a name="l00178"></a>00178         QwtDoubleRect rect = bRect;<a name="l00179"></a>00179         <span class="keywordflow">if</span> ( bRect.contains(cRect) )<a name="l00180"></a>00180             rect = cRect;<a name="l00181"></a>00181 <a name="l00182"></a>00182         <a class="code" href="class_qwt_plot_svg_item.html#80d8b81daf93969e8e3a48ba244854d9">render</a>(painter, <a class="code" href="class_qwt_plot_svg_item.html#c8e4baf861294607837d1c4951687b1e">viewBox</a>(rect),<a name="l00183"></a>00183             <a class="code" href="class_qwt_plot_item.html#ce79adb7c901ef5d729dba35265096c2">transform</a>(xMap, yMap, rect) );<a name="l00184"></a>00184     }<a name="l00185"></a>00185 }<a name="l00186"></a>00186 <a name="l00194"></a><a class="code" href="class_qwt_plot_svg_item.html#80d8b81daf93969e8e3a48ba244854d9">00194</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_svg_item.html#80d8b81daf93969e8e3a48ba244854d9">QwtPlotSvgItem::render</a>(QPainter *painter,<a name="l00195"></a>00195         <span class="keyword">const</span> QwtDoubleRect &amp;viewBox, <span class="keyword">const</span> QRect &amp;rect)<span class="keyword"> const</span><a name="l00196"></a>00196 <span class="keyword"></span>{<a name="l00197"></a>00197     <span class="keywordflow">if</span> ( !viewBox.isValid() )<a name="l00198"></a>00198         <span class="keywordflow">return</span>;<a name="l00199"></a>00199 <a name="l00200"></a>00200 <span class="preprocessor">#if QT_VERSION &gt;= 0x040200</span><a name="l00201"></a>00201 <span class="preprocessor"></span>    d_data-&gt;renderer.setViewBox(viewBox);<a name="l00202"></a>00202     d_data-&gt;renderer.render(painter, rect);<a name="l00203"></a>00203     <span class="keywordflow">return</span>;<a name="l00204"></a>00204 <span class="preprocessor">#else</span><a name="l00205"></a>00205 <span class="preprocessor"></span><a name="l00206"></a>00206 <span class="preprocessor">#if QT_VERSION &gt;= 0x040100</span><a name="l00207"></a>00207 <span class="preprocessor"></span>    <span class="keyword">const</span> QSize paintSize(painter-&gt;window().width(),<a name="l00208"></a>00208         painter-&gt;window().height());<a name="l00209"></a>00209     <span class="keywordflow">if</span> ( !paintSize.isValid() )<a name="l00210"></a>00210         <span class="keywordflow">return</span>;<a name="l00211"></a>00211 <a name="l00212"></a>00212     <span class="keyword">const</span> <span class="keywordtype">double</span> xRatio = paintSize.width() / viewBox.width();<a name="l00213"></a>00213     <span class="keyword">const</span> <span class="keywordtype">double</span> yRatio = paintSize.height() / viewBox.height();<a name="l00214"></a>00214 <a name="l00215"></a>00215     <span class="keyword">const</span> <span class="keywordtype">double</span> dx = rect.left() / xRatio + 1.0;<a name="l00216"></a>00216     <span class="keyword">const</span> <span class="keywordtype">double</span> dy = rect.top() / yRatio + 1.0;<a name="l00217"></a>00217 <a name="l00218"></a>00218     <span class="keyword">const</span> <span class="keywordtype">double</span> mx = double(rect.width()) / paintSize.width();<a name="l00219"></a>00219     <span class="keyword">const</span> <span class="keywordtype">double</span> my = double(rect.height()) / paintSize.height();<a name="l00220"></a>00220 <a name="l00221"></a>00221     painter-&gt;save();<a name="l00222"></a>00222 <a name="l00223"></a>00223     painter-&gt;translate(dx, dy);<a name="l00224"></a>00224     painter-&gt;scale(mx, my);<a name="l00225"></a>00225 <a name="l00226"></a>00226     d_data-&gt;renderer.setViewBox(viewBox.toRect());<a name="l00227"></a>00227     d_data-&gt;renderer.render(painter);<a name="l00228"></a>00228 <a name="l00229"></a>00229     painter-&gt;restore();<a name="l00230"></a>00230 <span class="preprocessor">#else</span><a name="l00231"></a>00231 <span class="preprocessor"></span>    <span class="keyword">const</span> <span class="keywordtype">double</span> mx = rect.width() / viewBox.width();<a name="l00232"></a>00232     <span class="keyword">const</span> <span class="keywordtype">double</span> my = rect.height() / viewBox.height();<a name="l00233"></a>00233     <span class="keyword">const</span> <span class="keywordtype">double</span> dx = rect.x() - mx * viewBox.x();<a name="l00234"></a>00234     <span class="keyword">const</span> <span class="keywordtype">double</span> dy = rect.y() - my * viewBox.y();<a name="l00235"></a>00235 <a name="l00236"></a>00236     painter-&gt;save();<a name="l00237"></a>00237 <a name="l00238"></a>00238     painter-&gt;translate(dx, dy);<a name="l00239"></a>00239     painter-&gt;scale(mx, my);<a name="l00240"></a>00240     <a name="l00241"></a>00241     d_data-&gt;picture.play(painter);<a name="l00242"></a>00242 <a name="l00243"></a>00243     painter-&gt;restore();<a name="l00244"></a>00244 <span class="preprocessor">#endif // &lt; 0x040100</span><a name="l00245"></a>00245 <span class="preprocessor"></span><span class="preprocessor">#endif // &lt; 0x040200</span><a name="l00246"></a>00246 <span class="preprocessor"></span>}<a name="l00247"></a>00247 <a name="l00254"></a><a class="code" href="class_qwt_plot_svg_item.html#c8e4baf861294607837d1c4951687b1e">00254</a> QwtDoubleRect <a class="code" href="class_qwt_plot_svg_item.html#c8e4baf861294607837d1c4951687b1e">QwtPlotSvgItem::viewBox</a>(<span class="keyword">const</span> QwtDoubleRect &amp;rect)<span class="keyword"> const</span><a name="l00255"></a>00255 <span class="keyword"></span>{<a name="l00256"></a>00256 <span class="preprocessor">#if QT_VERSION &gt;= 0x040100</span><a name="l00257"></a>00257 <span class="preprocessor"></span>    <span class="keyword">const</span> QSize sz = d_data-&gt;renderer.defaultSize();<a name="l00258"></a>00258 <span class="preprocessor">#else</span><a name="l00259"></a>00259 <span class="preprocessor"></span><span class="preprocessor">#if QT_VERSION &gt; 0x040000</span><a name="l00260"></a>00260 <span class="preprocessor"></span>    <span class="keyword">const</span> QSize sz(d_data-&gt;picture.width(), <a name="l00261"></a>00261         d_data-&gt;picture.height());<a name="l00262"></a>00262 <span class="preprocessor">#else</span><a name="l00263"></a>00263 <span class="preprocessor"></span>    QPaintDeviceMetrics metrics(&amp;d_data-&gt;picture);<a name="l00264"></a>00264     <span class="keyword">const</span> QSize sz(metrics.width(), metrics.height());<a name="l00265"></a>00265 <span class="preprocessor">#endif</span><a name="l00266"></a>00266 <span class="preprocessor"></span><span class="preprocessor">#endif</span><a name="l00267"></a>00267 <span class="preprocessor"></span>    <span class="keyword">const</span> QwtDoubleRect br = <a class="code" href="class_qwt_plot_svg_item.html#6d93e375e320cef36e00e88a8d9b7b36">boundingRect</a>();<a name="l00268"></a>00268 <a name="l00269"></a>00269     <span class="keywordflow">if</span> ( !rect.isValid() || !br.isValid() || sz.isNull() )<a name="l00270"></a>00270         <span class="keywordflow">return</span> QwtDoubleRect();<a name="l00271"></a>00271 <a name="l00272"></a>00272     <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> xMap;<a name="l00273"></a>00273     xMap.<a class="code" href="class_qwt_scale_map.html#aa33bc8e1aed7aa17d345053194e7094">setScaleInterval</a>(br.left(), br.right());<a name="l00274"></a>00274     xMap.<a class="code" href="class_qwt_scale_map.html#a9a63a0b2e4ff81b1df23d9f968cd5b8">setPaintInterval</a>(0, sz.width());<a name="l00275"></a>00275 <a name="l00276"></a>00276     <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> yMap;<a name="l00277"></a>00277     yMap.<a class="code" href="class_qwt_scale_map.html#aa33bc8e1aed7aa17d345053194e7094">setScaleInterval</a>(br.top(), br.bottom());<a name="l00278"></a>00278     yMap.<a class="code" href="class_qwt_scale_map.html#a9a63a0b2e4ff81b1df23d9f968cd5b8">setPaintInterval</a>(sz.height(), 0);<a name="l00279"></a>00279 <a name="l00280"></a>00280     <span class="keyword">const</span> <span class="keywordtype">double</span> x1 = xMap.<a class="code" href="class_qwt_scale_map.html#053cad00dd463f45c7e1591c9f2d8296">xTransform</a>(rect.left());<a name="l00281"></a>00281     <span class="keyword">const</span> <span class="keywordtype">double</span> x2 = xMap.<a class="code" href="class_qwt_scale_map.html#053cad00dd463f45c7e1591c9f2d8296">xTransform</a>(rect.right());<a name="l00282"></a>00282     <span class="keyword">const</span> <span class="keywordtype">double</span> y1 = yMap.<a class="code" href="class_qwt_scale_map.html#053cad00dd463f45c7e1591c9f2d8296">xTransform</a>(rect.bottom());<a name="l00283"></a>00283     <span class="keyword">const</span> <span class="keywordtype">double</span> y2 = yMap.<a class="code" href="class_qwt_scale_map.html#053cad00dd463f45c7e1591c9f2d8296">xTransform</a>(rect.top());<a name="l00284"></a>00284 <a name="l00285"></a>00285     <span class="keywordflow">return</span> QwtDoubleRect(x1, y1, x2 - x1, y2 - y1);<a name="l00286"></a>00286 }</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:38 2007 for Qwt User's Guide by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -