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

📄 qwt__compass__rose_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<a name="l00138"></a>00138 #<span class="keywordflow">if</span> QT_VERSION &lt; 0x040000<a name="l00139"></a>00139     <span class="keyword">const</span> QColorGroup &amp;cg,<a name="l00140"></a>00140 #<span class="keywordflow">else</span><a name="l00141"></a>00141     <span class="keyword">const</span> QPalette &amp;palette,<a name="l00142"></a>00142 #endif<a name="l00143"></a>00143     <span class="keyword">const</span> QPoint &amp;center, <span class="keywordtype">int</span> radius, <span class="keywordtype">double</span> north, <span class="keywordtype">double</span> width,<a name="l00144"></a>00144     <span class="keywordtype">int</span> numThorns, <span class="keywordtype">int</span> numThornLevels, <span class="keywordtype">double</span> shrinkFactor)<a name="l00145"></a>00145 {<a name="l00146"></a>00146     <span class="keywordflow">if</span> ( numThorns &lt; 4 )<a name="l00147"></a>00147         numThorns = 4;<a name="l00148"></a>00148 <a name="l00149"></a>00149     <span class="keywordflow">if</span> ( numThorns % 4 )<a name="l00150"></a>00150         numThorns += 4 - numThorns % 4;<a name="l00151"></a>00151 <a name="l00152"></a>00152     <span class="keywordflow">if</span> ( numThornLevels &lt;= 0 )<a name="l00153"></a>00153         numThornLevels = numThorns / 4;<a name="l00154"></a>00154 <a name="l00155"></a>00155     <span class="keywordflow">if</span> ( shrinkFactor &gt;= 1.0 )<a name="l00156"></a>00156         shrinkFactor = 1.0;<a name="l00157"></a>00157 <a name="l00158"></a>00158     <span class="keywordflow">if</span> ( shrinkFactor &lt;= 0.5 )<a name="l00159"></a>00159         shrinkFactor = 0.5;<a name="l00160"></a>00160 <a name="l00161"></a>00161     painter-&gt;save();<a name="l00162"></a>00162 <a name="l00163"></a>00163     painter-&gt;setPen(Qt::NoPen);<a name="l00164"></a>00164 <a name="l00165"></a>00165     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> j = 1; j &lt;= numThornLevels; j++ )<a name="l00166"></a>00166     {<a name="l00167"></a>00167         <span class="keywordtype">double</span> step =  pow(2.0, j) * M_PI / (<span class="keywordtype">double</span>)numThorns;<a name="l00168"></a>00168         <span class="keywordflow">if</span> ( step &gt; M_PI_2 )<a name="l00169"></a>00169             <span class="keywordflow">break</span>;<a name="l00170"></a>00170 <a name="l00171"></a>00171         <span class="keywordtype">double</span> r = radius;<a name="l00172"></a>00172         <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> k = 0; k &lt; 3; k++ )<a name="l00173"></a>00173         {<a name="l00174"></a>00174             <span class="keywordflow">if</span> ( j + k &lt; numThornLevels )<a name="l00175"></a>00175                 r *= shrinkFactor;<a name="l00176"></a>00176         }<a name="l00177"></a>00177 <a name="l00178"></a>00178         <span class="keywordtype">double</span> leafWidth = r * width;<a name="l00179"></a>00179         <span class="keywordflow">if</span> ( 2.0 * M_PI / step &gt; 32 )<a name="l00180"></a>00180             leafWidth = 16;<a name="l00181"></a>00181 <a name="l00182"></a>00182         <span class="keyword">const</span> <span class="keywordtype">double</span> origin = north / 180.0 * M_PI;<a name="l00183"></a>00183         <span class="keywordflow">for</span> ( <span class="keywordtype">double</span> angle = origin; <a name="l00184"></a>00184             angle &lt; 2.0 * M_PI + origin; angle += step)<a name="l00185"></a>00185         {<a name="l00186"></a>00186             <span class="keyword">const</span> QPoint p = qwtPolar2Pos(center, r, angle);<a name="l00187"></a>00187             QPoint p1 = qwtPolar2Pos(center, leafWidth, angle + M_PI_2);<a name="l00188"></a>00188             QPoint p2 = qwtPolar2Pos(center, leafWidth, angle - M_PI_2);<a name="l00189"></a>00189 <a name="l00190"></a>00190             QwtPolygon pa(3);<a name="l00191"></a>00191             pa.setPoint(0, center);<a name="l00192"></a>00192             pa.setPoint(1, p);<a name="l00193"></a>00193 <a name="l00194"></a>00194             QPoint p3 = qwtPolar2Pos(center, r, angle + step / 2.0);<a name="l00195"></a>00195             p1 = cutPoint(center, p3, p1, p);<a name="l00196"></a>00196             pa.setPoint(2, p1);<a name="l00197"></a>00197 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00198"></a>00198 <span class="preprocessor"></span>            painter-&gt;setBrush(cg.brush(QColorGroup::Dark));<a name="l00199"></a>00199 <span class="preprocessor">#else</span><a name="l00200"></a>00200 <span class="preprocessor"></span>            painter-&gt;setBrush(palette.brush(QPalette::Dark));<a name="l00201"></a>00201 <span class="preprocessor">#endif</span><a name="l00202"></a>00202 <span class="preprocessor"></span>            painter-&gt;drawPolygon(pa);<a name="l00203"></a>00203 <a name="l00204"></a>00204             QPoint p4 = qwtPolar2Pos(center, r, angle - step / 2.0);<a name="l00205"></a>00205             p2 = cutPoint(center, p4, p2, p);<a name="l00206"></a>00206 <a name="l00207"></a>00207             pa.setPoint(2, p2);<a name="l00208"></a>00208 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00209"></a>00209 <span class="preprocessor"></span>            painter-&gt;setBrush(cg.brush(QColorGroup::Light));<a name="l00210"></a>00210 <span class="preprocessor">#else</span><a name="l00211"></a>00211 <span class="preprocessor"></span>            painter-&gt;setBrush(palette.brush(QPalette::Light));<a name="l00212"></a>00212 <span class="preprocessor">#endif</span><a name="l00213"></a>00213 <span class="preprocessor"></span>            painter-&gt;drawPolygon(pa);<a name="l00214"></a>00214         }<a name="l00215"></a>00215     }<a name="l00216"></a>00216     painter-&gt;restore();<a name="l00217"></a>00217 }<a name="l00218"></a>00218 <a name="l00226"></a><a class="code" href="class_qwt_simple_compass_rose.html#e4067a436f45d2f2ca23d8233539566b">00226</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_simple_compass_rose.html#e4067a436f45d2f2ca23d8233539566b">QwtSimpleCompassRose::setWidth</a>(<span class="keywordtype">double</span> width) <a name="l00227"></a>00227 {<a name="l00228"></a>00228    d_width = width;<a name="l00229"></a>00229    <span class="keywordflow">if</span> (d_width &lt; 0.03) <a name="l00230"></a>00230         d_width = 0.03;<a name="l00231"></a>00231 <a name="l00232"></a>00232    <span class="keywordflow">if</span> (d_width &gt; 0.4) <a name="l00233"></a>00233         d_width = 0.4;<a name="l00234"></a>00234 }<a name="l00235"></a>00235 <a name="l00243"></a><a class="code" href="class_qwt_simple_compass_rose.html#3c86abb463eb4741d1776318d6fa557b">00243</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_simple_compass_rose.html#3c86abb463eb4741d1776318d6fa557b">QwtSimpleCompassRose::setNumThorns</a>(<span class="keywordtype">int</span> numThorns) <a name="l00244"></a>00244 {<a name="l00245"></a>00245     <span class="keywordflow">if</span> ( numThorns &lt; 4 )<a name="l00246"></a>00246         numThorns = 4;<a name="l00247"></a>00247 <a name="l00248"></a>00248     <span class="keywordflow">if</span> ( numThorns % 4 )<a name="l00249"></a>00249         numThorns += 4 - numThorns % 4;<a name="l00250"></a>00250 <a name="l00251"></a>00251     d_numThorns = numThorns;<a name="l00252"></a>00252 }<a name="l00253"></a>00253 <a name="l00258"></a><a class="code" href="class_qwt_simple_compass_rose.html#7c3270789e94e94b8d515b04372bfe0b">00258</a> <span class="keywordtype">int</span> <a class="code" href="class_qwt_simple_compass_rose.html#7c3270789e94e94b8d515b04372bfe0b">QwtSimpleCompassRose::numThorns</a>()<span class="keyword"> const</span><a name="l00259"></a>00259 <span class="keyword"></span>{<a name="l00260"></a>00260    <span class="keywordflow">return</span> d_numThorns;<a name="l00261"></a>00261 }<a name="l00262"></a>00262 <a name="l00269"></a><a class="code" href="class_qwt_simple_compass_rose.html#d91026da3b586a3193a264401221a275">00269</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_simple_compass_rose.html#d91026da3b586a3193a264401221a275">QwtSimpleCompassRose::setNumThornLevels</a>(<span class="keywordtype">int</span> numThornLevels) <a name="l00270"></a>00270 {<a name="l00271"></a>00271     d_numThornLevels = numThornLevels;<a name="l00272"></a>00272 }<a name="l00273"></a>00273 <a name="l00278"></a><a class="code" href="class_qwt_simple_compass_rose.html#8fa418ee344d934d556fa5719cd5ece5">00278</a> <span class="keywordtype">int</span> <a class="code" href="class_qwt_simple_compass_rose.html#8fa418ee344d934d556fa5719cd5ece5">QwtSimpleCompassRose::numThornLevels</a>()<span class="keyword"> const</span><a name="l00279"></a>00279 <span class="keyword"></span>{<a name="l00280"></a>00280     <span class="keywordflow">return</span> d_numThornLevels;<a name="l00281"></a>00281 }</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 + -