# Thread: Easiest way of Drawing Lines, Points on QwtPolarPlot - help needed.

1. Intermediate user
Join Date
Oct 2006
Posts
75
Thanks
10
Qt products
Platforms

## Easiest way of Drawing Lines, Points on QwtPolarPlot - help needed.

Hi,
Before asking my question, I must admit that I did not put much effort to understand the concept of plotting data at desired location (radiusValue, azimuthValue) on QwtPolarPlot from the examples and source code.
My requirement is to divide the plot area into 3 equal circular regions as shown in the attached figure circular-regions.png (region1 - with radius R1, region2 with radius R2 and region3 with radius R3. Radius of the plot = R1 + R2 + R3 and R1=R2=R3) and plot points, lines and custom shapes within those regions.

Please suggest the easiest way of drawing points, lines on QwtPolarPlot.

swamy.

2. Intermediate user
Join Date
Oct 2006
Posts
75
Thanks
10
Qt products
Platforms

## Re: Easiest way of Drawing Lines, Points on QwtPolarPlot - help needed.

Hi,
This is in continuation to my query. I think, I have concentrated more on my application requirement rather than asking for concept explanation. I really did not understand the concept of
virtual QwtPointPolar sample( size_t i ) const
of Rose/ Spiral Data Class of QwtPolarDemo example. I also have gone through the wiki reference of Polar Coordinate System basics. But I could not co-relate the equations of Rose/ Spiral equations with the ones that are implemented in demo example. I am poor at those equations. How to re-implement 'virtual QwtPointPolar sample( size_t i ) const' to derive my own classes to draw Line, Point or Circle on QwtPolarPlot using
QwtSeriesData<QwtPointPolar> or QwtPolarItem
or any relevant Class. Please take some time to explain and make me understand it clearly.

swamy.

3. Uwe
Expert
Join Date
Feb 2006
Location
Munich, Germany
Posts
3,241
Thanked 860 Times in 809 Posts
Qt products
Platforms

## Re: Easiest way of Drawing Lines, Points on QwtPolarPlot - help needed.

QwtPointPolar is a point in polar coordinates, QwtPolarCurve represents a series of polar points on a polar coordinate system. What type of concept do you want to understand here ?

The polardemo calculates its points on the fly, but the usual use case is that you have points in a buffer, that you set with QwtPolarCurve::setData(). F.e use a QwtArraySeriesData object. This is exactly the same as with QwtPlotCurve.

QwtPolarPlot doesn't have as many plot items as QwtPlot - basically there are only curve, marker and spectrogram - but with Qwt 6.1 you have much more possibilities with writing custom symbols for a curve. If this is not enough for your requirements you have to implement your own deriving from QwtPolarItem. Guess a counter part of QwtPlotShapeItem, running the coordinates of a painter path through the polar transformation might be an interesting new class. ( I will add it when finalizing the next version ).

Uwe

4. ## The following user says thank you to Uwe for this useful post:

swamyonline (9th March 2013)

5. Intermediate user
Join Date
Dec 2012
Posts
90
Thanks
5
Thanked 20 Times in 18 Posts
Qt products
Platforms

## Re: Easiest way of Drawing Lines, Points on QwtPolarPlot - help needed.

If you want to draw points/curves, first you need to subclass QwtSeriesData<QwtPointPolar>, overriding methods boundingRect, size and sample.
boundingRect should return bounding rectangle of all your points, size the number of them and sample should return specific point.
Then you use setData method of a QwtPolarCurve with your data class to supply it.
Then you attach curve to your plot.

Edit: It's of course better to use QwtArraySeriesData(then you don't need subclassing), as Uwe suggests.

If you want to draw lines and circles (or markers) you should subclass QwtPolarItem, reimplementing its draw method to draw all you want atop the plot (don't forget to call setZ in constructor for it to have sensible value).
Last edited by lanz; 7th March 2013 at 06:19.

6. ## The following user says thank you to lanz for this useful post:

swamyonline (9th March 2013)

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.