使用QWT控件可以繪製各種圖形,圖形一般都有點、線實現,一個圖形的怎麼通過函數添加對應的點來實現的關鍵就是要知道圖形中點分佈的規律,下面列舉了正弦分佈和五角星圖形對應點的分佈函數實現,僅供參考,後面會陸續更新
正弦點分佈
QPolygonF points( double phase ) const //phase爲正弦波幅值(波形平移),0:正好是正弦波 { QPolygonF points; const int numSamples = 15; for ( int i = 0; i < numSamples; i++ ) { const double v = 2 * M_PI * double( i ) / double( numSamples - 1 ); points += QPointF( qSin( v - phase ), v ); } return points; }
五角星點分佈
void initSamples() { const int numSamples = 15; for ( int i = 0; i < numSamples; i++ ) { const double angle = i * ( 2.0 * M_PI / ( numSamples - 1 ) ); QPointF p( qCos( angle ), qSin( angle ) ); if ( i % 2 ) p *= 0.4; d_points += p; } }