📄 qwt__plot__curve_8cpp-source.html
字号:
<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->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->reference);<a name="l00794"></a>00794 <a name="l00795"></a>00795 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = from; i <= 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->attributes & 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> &xMap, <span class="keyword">const</span> <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> &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->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->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 > from && d_data->paintAttributes & 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 <= 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 <= 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 <= 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->paintAttributes & 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->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> &xMap, <span class="keyword">const</span> <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> &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->attributes & Yfx;<a name="l00921"></a>00921 <span class="keywordflow">if</span> ( d_data->attributes & 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 <= 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 > 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->paintAttributes & 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->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->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->attributes & attribute) == on )<a name="l00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -