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

📄 qwt__dial__needle_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<a name="l00370"></a>00370     painter-&gt;restore();<a name="l00371"></a>00371 }<a name="l00372"></a>00372 <a name="l00383"></a><a class="code" href="class_qwt_compass_magnet_needle.html#786b21adb5d427b35be554eeafcce06c">00383</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_magnet_needle.html#786b21adb5d427b35be554eeafcce06c">QwtCompassMagnetNeedle::drawThinNeedle</a>(QPainter *painter, <a name="l00384"></a>00384     <span class="keyword">const</span> QPalette &amp;palette, QPalette::ColorGroup colorGroup,<a name="l00385"></a>00385     <span class="keyword">const</span> QPoint &amp;center, <span class="keywordtype">int</span> length, <span class="keywordtype">double</span> direction) <a name="l00386"></a>00386 {<a name="l00387"></a>00387     <span class="keyword">const</span> QBrush darkBrush = palette.brush(colorGroup, QwtPalette::Dark);<a name="l00388"></a>00388     <span class="keyword">const</span> QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light);<a name="l00389"></a>00389     <span class="keyword">const</span> QBrush baseBrush = palette.brush(colorGroup, QwtPalette::Base);<a name="l00390"></a>00390 <a name="l00391"></a>00391     <span class="keyword">const</span> <span class="keywordtype">int</span> colorOffset = 10;<a name="l00392"></a>00392     <span class="keyword">const</span> <span class="keywordtype">int</span> width = qwtMax(qRound(length / 6.0), 3);<a name="l00393"></a>00393 <a name="l00394"></a>00394     painter-&gt;save();<a name="l00395"></a>00395 <a name="l00396"></a>00396     <span class="keyword">const</span> QPoint arrowCenter(center.x() + 1, center.y() + 1);<a name="l00397"></a>00397 <a name="l00398"></a>00398     <a class="code" href="class_qwt_compass_magnet_needle.html#d8ca9ebf795e69c1058b00f1c00c5963">drawPointer</a>(painter, darkBrush, colorOffset, <a name="l00399"></a>00399         arrowCenter, length, width, direction);<a name="l00400"></a>00400     <a class="code" href="class_qwt_compass_magnet_needle.html#d8ca9ebf795e69c1058b00f1c00c5963">drawPointer</a>(painter, lightBrush, -colorOffset, <a name="l00401"></a>00401         arrowCenter, length, width, direction + 180.0);<a name="l00402"></a>00402     <a name="l00403"></a>00403     <a class="code" href="class_qwt_dial_needle.html#5ff7738a4ce55551b0949a55b145662f">drawKnob</a>(painter, arrowCenter, width, baseBrush, <span class="keyword">true</span>);<a name="l00404"></a>00404 <a name="l00405"></a>00405     painter-&gt;restore();<a name="l00406"></a>00406 }<a name="l00407"></a>00407 <a name="l00419"></a><a class="code" href="class_qwt_compass_magnet_needle.html#d8ca9ebf795e69c1058b00f1c00c5963">00419</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_magnet_needle.html#d8ca9ebf795e69c1058b00f1c00c5963">QwtCompassMagnetNeedle::drawPointer</a>(<a name="l00420"></a>00420     QPainter *painter, <span class="keyword">const</span> QBrush &amp;brush,<a name="l00421"></a>00421     <span class="keywordtype">int</span> colorOffset, <span class="keyword">const</span> QPoint &amp;center, <span class="keywordtype">int</span> length, <a name="l00422"></a>00422     <span class="keywordtype">int</span> width, <span class="keywordtype">double</span> direction)<a name="l00423"></a>00423 {<a name="l00424"></a>00424     painter-&gt;save();<a name="l00425"></a>00425 <a name="l00426"></a>00426     <span class="keyword">const</span> <span class="keywordtype">int</span> peak = qwtMax(qRound(length / 10.0), 5);<a name="l00427"></a>00427 <a name="l00428"></a>00428     <span class="keyword">const</span> <span class="keywordtype">int</span> knobWidth = width + 8;<a name="l00429"></a>00429     QRect knobRect(0, 0, knobWidth, knobWidth);<a name="l00430"></a>00430     knobRect.moveCenter(center);<a name="l00431"></a>00431 <a name="l00432"></a>00432     QwtPolygon pa(5);<a name="l00433"></a>00433 <a name="l00434"></a>00434     pa.setPoint(0, qwtDegree2Pos(center, width / 2, direction + 90.0));<a name="l00435"></a>00435     pa.setPoint(1, center);<a name="l00436"></a>00436     pa.setPoint(2, qwtDegree2Pos(pa.point(1), length - peak, direction));<a name="l00437"></a>00437     pa.setPoint(3, qwtDegree2Pos(center, length, direction));<a name="l00438"></a>00438     pa.setPoint(4, qwtDegree2Pos(pa.point(0), length - peak, direction));<a name="l00439"></a>00439 <a name="l00440"></a>00440     painter-&gt;setPen(Qt::NoPen);<a name="l00441"></a>00441 <a name="l00442"></a>00442     QBrush darkBrush = brush;<a name="l00443"></a>00443     darkBrush.setColor(darkBrush.color().dark(100 + colorOffset));<a name="l00444"></a>00444     painter-&gt;setBrush(darkBrush);<a name="l00445"></a>00445     painter-&gt;drawPolygon(pa);<a name="l00446"></a>00446     painter-&gt;drawPie(knobRect, qRound(direction * 16), 90 * 16);<a name="l00447"></a>00447 <a name="l00448"></a>00448     pa.setPoint(0, qwtDegree2Pos(center, width / 2, direction - 90.0));<a name="l00449"></a>00449     pa.setPoint(4, qwtDegree2Pos(pa.point(0), length - peak, direction));<a name="l00450"></a>00450 <a name="l00451"></a>00451     QBrush lightBrush = brush;<a name="l00452"></a>00452     lightBrush.setColor(lightBrush.color().dark(100 - colorOffset));<a name="l00453"></a>00453     painter-&gt;setBrush(lightBrush);<a name="l00454"></a>00454     painter-&gt;drawPolygon(pa);<a name="l00455"></a>00455     painter-&gt;drawPie(knobRect, qRound(direction * 16), -90 * 16);<a name="l00456"></a>00456 <a name="l00457"></a>00457     painter-&gt;restore();<a name="l00458"></a>00458 }<a name="l00459"></a>00459 <a name="l00467"></a><a class="code" href="class_qwt_compass_wind_arrow.html#1b5931f43dd7e72fc5a3e2c9b509769d">00467</a> <a class="code" href="class_qwt_compass_wind_arrow.html#1b5931f43dd7e72fc5a3e2c9b509769d">QwtCompassWindArrow::QwtCompassWindArrow</a>(<a class="code" href="class_qwt_compass_wind_arrow.html#55f11e28c9d87c0fb7c306ccd174f2a8">Style</a> style, <a name="l00468"></a>00468         <span class="keyword">const</span> QColor &amp;light, <span class="keyword">const</span> QColor &amp;dark):<a name="l00469"></a>00469     d_style(style)<a name="l00470"></a>00470 {<a name="l00471"></a>00471     QPalette <a class="code" href="class_qwt_dial_needle.html#8b3c915032389261e07cc983b433166c">palette</a>;<a name="l00472"></a>00472     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; QPalette::NColorGroups; i++ )<a name="l00473"></a>00473     {<a name="l00474"></a>00474         palette.setColor((QPalette::ColorGroup)i,<a name="l00475"></a>00475             QwtPalette::Light, light);<a name="l00476"></a>00476         palette.setColor((QPalette::ColorGroup)i,<a name="l00477"></a>00477             QwtPalette::Dark, dark);<a name="l00478"></a>00478     }<a name="l00479"></a>00479 <a name="l00480"></a>00480     setPalette(palette);<a name="l00481"></a>00481 }<a name="l00482"></a>00482 <a name="l00492"></a><a class="code" href="class_qwt_compass_wind_arrow.html#a3a2d79d2934205501a92a9c198e3d8a">00492</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_wind_arrow.html#a3a2d79d2934205501a92a9c198e3d8a">QwtCompassWindArrow::draw</a>(QPainter *painter, <span class="keyword">const</span> QPoint &amp;center,<a name="l00493"></a>00493     <span class="keywordtype">int</span> length, <span class="keywordtype">double</span> direction, QPalette::ColorGroup colorGroup)<span class="keyword"> const</span><a name="l00494"></a>00494 <span class="keyword"></span>{<a name="l00495"></a>00495     <span class="keywordflow">if</span> ( d_style == Style1 )<a name="l00496"></a>00496     {<a name="l00497"></a>00497         <a class="code" href="class_qwt_compass_wind_arrow.html#7a018acb636eec2c3f2d4793c0bfa033">drawStyle1Needle</a>(painter, <a class="code" href="class_qwt_dial_needle.html#8b3c915032389261e07cc983b433166c">palette</a>(), colorGroup,<a name="l00498"></a>00498             center, length, direction);<a name="l00499"></a>00499     }<a name="l00500"></a>00500     <span class="keywordflow">else</span><a name="l00501"></a>00501     {<a name="l00502"></a>00502         <a class="code" href="class_qwt_compass_wind_arrow.html#c326fcaae96d7752c48152e5d7260f62">drawStyle2Needle</a>(painter, <a class="code" href="class_qwt_dial_needle.html#8b3c915032389261e07cc983b433166c">palette</a>(), colorGroup,<a name="l00503"></a>00503             center, length, direction); <a name="l00504"></a>00504     }<a name="l00505"></a>00505 }<a name="l00506"></a>00506 <a name="l00517"></a><a class="code" href="class_qwt_compass_wind_arrow.html#7a018acb636eec2c3f2d4793c0bfa033">00517</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_wind_arrow.html#7a018acb636eec2c3f2d4793c0bfa033">QwtCompassWindArrow::drawStyle1Needle</a>(QPainter *painter, <a name="l00518"></a>00518     <span class="keyword">const</span> QPalette &amp;palette, QPalette::ColorGroup colorGroup,<a name="l00519"></a>00519     <span class="keyword">const</span> QPoint &amp;center, <span class="keywordtype">int</span> length, <span class="keywordtype">double</span> direction) <a name="l00520"></a>00520 {<a name="l00521"></a>00521     <span class="keyword">const</span> QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light);<a name="l00522"></a>00522 <a name="l00523"></a>00523     <span class="keyword">const</span> <span class="keywordtype">double</span> AR1[] = {0, 0.4, 0.3, 1, 0.8, 1, 0.3, 0.4};<a name="l00524"></a>00524     <span class="keyword">const</span> <span class="keywordtype">double</span> AW1[] = {0, -45, -20, -15, 0, 15, 20, 45};<a name="l00525"></a>00525 <a name="l00526"></a>00526     <span class="keyword">const</span> QPoint arrowCenter(center.x() + 1, center.y() + 1);<a name="l00527"></a>00527 <a name="l00528"></a>00528     QwtPolygon pa(8);<a name="l00529"></a>00529     pa.setPoint(0, arrowCenter);<a name="l00530"></a>00530     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=1; i&lt;8; i++) <a name="l00531"></a>00531     {<a name="l00532"></a>00532         <span class="keyword">const</span> QPoint p = qwtDegree2Pos(center, <a name="l00533"></a>00533             AR1[i] * length, direction + AW1[i]);<a name="l00534"></a>00534         pa.setPoint(i, p);<a name="l00535"></a>00535     }<a name="l00536"></a>00536 <a name="l00537"></a>00537     painter-&gt;save();<a name="l00538"></a>00538     painter-&gt;setPen(Qt::NoPen);<a name="l00539"></a>00539     painter-&gt;setBrush(lightBrush);<a name="l00540"></a>00540     painter-&gt;drawPolygon(pa);<a name="l00541"></a>00541     painter-&gt;restore();<a name="l00542"></a>00542 }<a name="l00543"></a>00543 <a name="l00554"></a><a class="code" href="class_qwt_compass_wind_arrow.html#c326fcaae96d7752c48152e5d7260f62">00554</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_wind_arrow.html#c326fcaae96d7752c48152e5d7260f62">QwtCompassWindArrow::drawStyle2Needle</a>(QPainter *painter, <a name="l00555"></a>00555     <span class="keyword">const</span> QPalette &amp;palette, QPalette::ColorGroup colorGroup,<a name="l00556"></a>00556     <span class="keyword">const</span> QPoint &amp;center, <span class="keywordtype">int</span> length, <span class="keywordtype">double</span> direction) <a name="l00557"></a>00557 {<a name="l00558"></a>00558     <span class="keyword">const</span> QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light);<a name="l00559"></a>00559     <span class="keyword">const</span> QBrush darkBrush = palette.brush(colorGroup, QwtPalette::Dark);<a name="l00560"></a>00560 <a name="l00561"></a>00561     painter-&gt;save();<a name="l00562"></a>00562     painter-&gt;setPen(Qt::NoPen);<a name="l00563"></a>00563 <a name="l00564"></a>00564     <span class="keyword">const</span> <span class="keywordtype">double</span> angle = 12.0;<a name="l00565"></a>00565     <span class="keyword">const</span> <span class="keywordtype">double</span> ratio = 0.7;<a name="l00566"></a>00566 <a name="l00567"></a>00567     <span class="keyword">const</span> QPoint arrowCenter(center.x() + 1, center.y() + 1);<a name="l00568"></a>00568 <a name="l00569"></a>00569     QwtPolygon pa(3);<a name="l00570"></a>00570 <a name="l00571"></a>00571     pa.setPoint(0, center);<a name="l00572"></a>00572     pa.setPoint(2, qwtDegree2Pos(arrowCenter, ratio * length, direction));<a name="l00573"></a>00573 <a name="l00574"></a>00574     pa.setPoint(1, qwtDegree2Pos(arrowCenter, length, direction + angle));<a name="l00575"></a>00575     painter-&gt;setBrush(darkBrush);<a name="l00576"></a>00576     painter-&gt;drawPolygon(pa);<a name="l00577"></a>00577 <a name="l00578"></a>00578     pa.setPoint(1, qwtDegree2Pos(arrowCenter, length, direction - angle));<a name="l00579"></a>00579     painter-&gt;setBrush(lightBrush);<a name="l00580"></a>00580     painter-&gt;drawPolygon(pa);<a name="l00581"></a>00581 <a name="l00582"></a>00582     painter-&gt;restore();<a name="l00583"></a>00583 }<a name="l00584"></a>00584 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:36 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 + -