Page 1 of 1
Getting hand pixels values using gauge series
Posted: Sun Feb 21, 2010 1:37 pm
by 15053905
Hi,
I am using Guage series. After diplaying a value by using:
m_Chart.Series(m_lSeriesId).AddXY(...) I see the hand in a specific correct postion pointing to value.
I would like to get the pixels coordinates of the end point of the hand.
How can I get it?
Thanks,
yvb
Re: Getting hand pixels values using gauge series
Posted: Mon Feb 22, 2010 4:39 pm
by yeray
Hi yvb,
Here is an example of how you could find the end point of the hand in VB6. Note that I've hidden the pen and used the calculated end hand point to draw the line where the hand would be.
Code: Select all
Private Sub Form_Load()
TChart1.AddSeries scGauge
TChart1.Series(0).asGauge.Value = 70
TChart1.Series(0).Pen.Visible = False
End Sub
Private Sub TChart1_OnAfterDraw()
Dim tmpRange, tmpAngle As Double
Dim EndHandX, EndHandY As Integer
Dim PI As Double
PI = 4 * Math.Atn(1)
With TChart1.Series(0).asGauge
tmpRange = .Maximum - .Minimum
If tmpRange = 0 Then
tmpAngle = 0.5 * PI
Else
tmpAngle = PI / 180 * (360 - (.TotalAngle - ((.Value - .Minimum) * .TotalAngle / tmpRange)) + .RotationAngle)
End If
Dim tmpSin, tmpCos As Double
tmpSin = Sin(tmpAngle)
tmpCos = Cos(tmpAngle)
EndHandX = .XCenter - Round(.XRadius * tmpCos) + Round(.HandDistance * tmpCos)
EndHandY = .YCenter - Round(.YRadius * tmpSin) + Round(.HandDistance * tmpSin)
TChart1.Canvas.Pen.Color = vbRed
TChart1.Canvas.DrawLine .XCenter, .YCenter, EndHandX, EndHandY
End With
End Sub