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

📄 qwt__plot__curve_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00792"></a>00792     <span class="keywordtype">int</span> x0 = xMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(d_data-&gt;reference);<a name="l00793"></a>00793     <span class="keywordtype">int</span> y0 = yMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(d_data-&gt;reference);<a name="l00794"></a>00794 <a name="l00795"></a>00795     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = from; i &lt;= to; i++)<a name="l00796"></a>00796     {<a name="l00797"></a>00797         <span class="keyword">const</span> <span class="keywordtype">int</span> xi = xMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#312b1fe8635430c293ee8fdc9fcfd774">x</a>(i));<a name="l00798"></a>00798         <span class="keyword">const</span> <span class="keywordtype">int</span> yi = yMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#db2885f90bfe2ce1f83929a20dffc38e">y</a>(i));<a name="l00799"></a>00799 <a name="l00800"></a>00800         <span class="keywordflow">if</span> (d_data-&gt;attributes &amp; Xfy)<a name="l00801"></a>00801             <a class="code" href="class_qwt_painter.html#f809f23704df7e05f51222daa296ca80">QwtPainter::drawLine</a>(painter, x0, yi, xi, yi);<a name="l00802"></a>00802         <span class="keywordflow">else</span><a name="l00803"></a>00803             <a class="code" href="class_qwt_painter.html#f809f23704df7e05f51222daa296ca80">QwtPainter::drawLine</a>(painter, xi, y0, xi, yi);<a name="l00804"></a>00804     }<a name="l00805"></a>00805 }<a name="l00806"></a>00806 <a name="l00818"></a><a class="code" href="class_qwt_plot_curve.html#6fcda40f4bd62fb3a91017ed9e7e49dc">00818</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_curve.html#6fcda40f4bd62fb3a91017ed9e7e49dc">QwtPlotCurve::drawDots</a>(QPainter *painter,<a name="l00819"></a>00819     <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="l00820"></a>00820     <span class="keywordtype">int</span> from, <span class="keywordtype">int</span> to)<span class="keyword"> const</span><a name="l00821"></a>00821 <span class="keyword"></span>{<a name="l00822"></a>00822     <span class="keyword">const</span> QRect window = painter-&gt;window();<a name="l00823"></a>00823     <span class="keywordflow">if</span> ( window.isEmpty() )<a name="l00824"></a>00824         <span class="keywordflow">return</span>;<a name="l00825"></a>00825 <a name="l00826"></a>00826     <span class="keyword">const</span> <span class="keywordtype">bool</span> doFill = d_data-&gt;brush.style() != Qt::NoBrush;<a name="l00827"></a>00827 <a name="l00828"></a>00828     QwtPolygon polyline;<a name="l00829"></a>00829     <span class="keywordflow">if</span> ( doFill )<a name="l00830"></a>00830         polyline.resize(to - from + 1);<a name="l00831"></a>00831 <a name="l00832"></a>00832     <span class="keywordflow">if</span> ( to &gt; from &amp;&amp; d_data-&gt;paintAttributes &amp; PaintFiltered )<a name="l00833"></a>00833     {<a name="l00834"></a>00834         <span class="keywordflow">if</span> ( doFill )   <a name="l00835"></a>00835         {<a name="l00836"></a>00836             QPoint pp( xMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#312b1fe8635430c293ee8fdc9fcfd774">x</a>(from)), yMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#db2885f90bfe2ce1f83929a20dffc38e">y</a>(from)) );<a name="l00837"></a>00837 <a name="l00838"></a>00838             <a class="code" href="class_qwt_painter.html#f75e34851777099b742910612e8e4b39">QwtPainter::drawPoint</a>(painter, pp.x(), pp.y());<a name="l00839"></a>00839             polyline.setPoint(0, pp);<a name="l00840"></a>00840 <a name="l00841"></a>00841             <span class="keywordtype">int</span> count = 1;<a name="l00842"></a>00842             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = from + 1; i &lt;= to; i++)<a name="l00843"></a>00843             {<a name="l00844"></a>00844                 <span class="keyword">const</span> QPoint pi(xMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#312b1fe8635430c293ee8fdc9fcfd774">x</a>(i)), yMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#db2885f90bfe2ce1f83929a20dffc38e">y</a>(i)));<a name="l00845"></a>00845                 <span class="keywordflow">if</span> ( pi != pp )<a name="l00846"></a>00846                 {<a name="l00847"></a>00847                     <a class="code" href="class_qwt_painter.html#f75e34851777099b742910612e8e4b39">QwtPainter::drawPoint</a>(painter, pi.x(), pi.y());<a name="l00848"></a>00848 <a name="l00849"></a>00849                     polyline.setPoint(count, pi);<a name="l00850"></a>00850                     count++;<a name="l00851"></a>00851 <a name="l00852"></a>00852                     pp = pi;<a name="l00853"></a>00853                 }<a name="l00854"></a>00854             }<a name="l00855"></a>00855             <span class="keywordflow">if</span> ( <span class="keywordtype">int</span>(polyline.size()) != count )<a name="l00856"></a>00856                 polyline.resize(count);<a name="l00857"></a>00857         }<a name="l00858"></a>00858         <span class="keywordflow">else</span><a name="l00859"></a>00859         {<a name="l00860"></a>00860             <span class="comment">// if we don't need to fill, we can sort out</span><a name="l00861"></a>00861             <span class="comment">// duplicates independent from the order</span><a name="l00862"></a>00862 <a name="l00863"></a>00863             PrivateData::PixelMatrix pixelMatrix(window);<a name="l00864"></a>00864 <a name="l00865"></a>00865             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = from; i &lt;= to; i++)<a name="l00866"></a>00866             {<a name="l00867"></a>00867                 <span class="keyword">const</span> QPoint p( xMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#312b1fe8635430c293ee8fdc9fcfd774">x</a>(i)),<a name="l00868"></a>00868                     yMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#db2885f90bfe2ce1f83929a20dffc38e">y</a>(i)) );<a name="l00869"></a>00869 <a name="l00870"></a>00870                 <span class="keywordflow">if</span> ( pixelMatrix.testPixel(p) )<a name="l00871"></a>00871                     <a class="code" href="class_qwt_painter.html#f75e34851777099b742910612e8e4b39">QwtPainter::drawPoint</a>(painter, p.x(), p.y());<a name="l00872"></a>00872             }<a name="l00873"></a>00873         }<a name="l00874"></a>00874     }<a name="l00875"></a>00875     <span class="keywordflow">else</span><a name="l00876"></a>00876     {<a name="l00877"></a>00877         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = from; i &lt;= to; i++)<a name="l00878"></a>00878         {<a name="l00879"></a>00879             <span class="keyword">const</span> <span class="keywordtype">int</span> xi = xMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(x(i));<a name="l00880"></a>00880             <span class="keyword">const</span> <span class="keywordtype">int</span> yi = yMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(y(i));<a name="l00881"></a>00881             <a class="code" href="class_qwt_painter.html#f75e34851777099b742910612e8e4b39">QwtPainter::drawPoint</a>(painter, xi, yi);<a name="l00882"></a>00882 <a name="l00883"></a>00883             <span class="keywordflow">if</span> ( doFill )<a name="l00884"></a>00884                 polyline.setPoint(i - from, xi, yi);<a name="l00885"></a>00885         }<a name="l00886"></a>00886     }<a name="l00887"></a>00887 <a name="l00888"></a>00888     <span class="keywordflow">if</span> ( doFill )<a name="l00889"></a>00889     {<a name="l00890"></a>00890         <span class="keywordflow">if</span> ( d_data-&gt;paintAttributes &amp; ClipPolygons )<a name="l00891"></a>00891         {<a name="l00892"></a>00892             <span class="keyword">const</span> <a class="code" href="class_qwt_rect.html">QwtRect</a> r = painter-&gt;window();<a name="l00893"></a>00893             polyline = r.<a class="code" href="class_qwt_rect.html#89bfabf3416a3b535451a83e91a12d13">clip</a>(polyline);<a name="l00894"></a>00894         }<a name="l00895"></a>00895 <a name="l00896"></a>00896         fillCurve(painter, xMap, yMap, polyline);<a name="l00897"></a>00897     }<a name="l00898"></a>00898 }<a name="l00899"></a>00899 <a name="l00914"></a><a class="code" href="class_qwt_plot_curve.html#46fe8d36454bc19b71615e3df96aa2e9">00914</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_curve.html#46fe8d36454bc19b71615e3df96aa2e9">QwtPlotCurve::drawSteps</a>(QPainter *painter,<a name="l00915"></a>00915     <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="l00916"></a>00916     <span class="keywordtype">int</span> from, <span class="keywordtype">int</span> to)<span class="keyword"> const</span><a name="l00917"></a>00917 <span class="keyword"></span>{<a name="l00918"></a>00918     QwtPolygon polyline(2 * (to - from) + 1);<a name="l00919"></a>00919 <a name="l00920"></a>00920     <span class="keywordtype">bool</span> inverted = d_data-&gt;attributes &amp; Yfx;<a name="l00921"></a>00921     <span class="keywordflow">if</span> ( d_data-&gt;attributes &amp; Inverted )<a name="l00922"></a>00922         inverted = !inverted;<a name="l00923"></a>00923 <a name="l00924"></a>00924     <span class="keywordtype">int</span> i,ip;<a name="l00925"></a>00925     <span class="keywordflow">for</span> (i = from, ip = 0; i &lt;= to; i++, ip += 2)<a name="l00926"></a>00926     {<a name="l00927"></a>00927         <span class="keyword">const</span> <span class="keywordtype">int</span> xi = xMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#312b1fe8635430c293ee8fdc9fcfd774">x</a>(i));<a name="l00928"></a>00928         <span class="keyword">const</span> <span class="keywordtype">int</span> yi = yMap.<a class="code" href="class_qwt_scale_map.html#1ddda39f41e137560e625a8c66c1d2e1">transform</a>(<a class="code" href="class_qwt_plot_curve.html#db2885f90bfe2ce1f83929a20dffc38e">y</a>(i));<a name="l00929"></a>00929 <a name="l00930"></a>00930         <span class="keywordflow">if</span> ( ip &gt; 0 )<a name="l00931"></a>00931         {<a name="l00932"></a>00932             <span class="keywordflow">if</span> (inverted)<a name="l00933"></a>00933                 polyline.setPoint(ip - 1, polyline[ip-2].<a class="code" href="class_qwt_plot_curve.html#312b1fe8635430c293ee8fdc9fcfd774">x</a>(), yi);<a name="l00934"></a>00934             <span class="keywordflow">else</span><a name="l00935"></a>00935                 polyline.setPoint(ip - 1, xi, polyline[ip-2].<a class="code" href="class_qwt_plot_curve.html#db2885f90bfe2ce1f83929a20dffc38e">y</a>());<a name="l00936"></a>00936         }<a name="l00937"></a>00937 <a name="l00938"></a>00938         polyline.setPoint(ip, xi, yi);<a name="l00939"></a>00939     }<a name="l00940"></a>00940 <a name="l00941"></a>00941     <span class="keywordflow">if</span> ( d_data-&gt;paintAttributes &amp; ClipPolygons )<a name="l00942"></a>00942     {<a name="l00943"></a>00943         <span class="keyword">const</span> <a class="code" href="class_qwt_rect.html">QwtRect</a> r = painter-&gt;window();<a name="l00944"></a>00944         polyline = r.<a class="code" href="class_qwt_rect.html#89bfabf3416a3b535451a83e91a12d13">clip</a>(polyline);<a name="l00945"></a>00945     }<a name="l00946"></a>00946 <a name="l00947"></a>00947     <a class="code" href="class_qwt_painter.html#fec384335c12a3cf84d82cbeb30cd537">QwtPainter::drawPolyline</a>(painter, polyline);<a name="l00948"></a>00948 <a name="l00949"></a>00949     <span class="keywordflow">if</span> ( d_data-&gt;brush.style() != Qt::NoBrush )<a name="l00950"></a>00950         fillCurve(painter, xMap, yMap, polyline);<a name="l00951"></a>00951 }<a name="l00952"></a>00952 <a name="l00953"></a>00953 <a name="l00976"></a><a class="code" href="class_qwt_plot_curve.html#6ac9243e280f96cd149102a91271a473">00976</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_curve.html#6ac9243e280f96cd149102a91271a473">QwtPlotCurve::setCurveAttribute</a>(<a class="code" href="class_qwt_plot_curve.html#38064f7de6f026a49db782c365f872c3">CurveAttribute</a> attribute, <span class="keywordtype">bool</span> on)<a name="l00977"></a>00977 {<a name="l00978"></a>00978     <span class="keywordflow">if</span> ( <span class="keywordtype">bool</span>(d_data-&gt;attributes &amp; attribute) == on )<a name="l00

⌨️ 快捷键说明

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