This commit is contained in:
hwd
2021-05-07 14:40:13 +02:00
parent dd27da9f55
commit 9c54ee4154
2 changed files with 85 additions and 29 deletions

View File

@@ -1,9 +1,9 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class Form1
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
@@ -20,7 +20,7 @@ Partial Class Form1
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Dim ChartArea1 As System.Windows.Forms.DataVisualization.Charting.ChartArea = New System.Windows.Forms.DataVisualization.Charting.ChartArea()
Dim Legend1 As System.Windows.Forms.DataVisualization.Charting.Legend = New System.Windows.Forms.DataVisualization.Charting.Legend()
@@ -28,33 +28,30 @@ Partial Class Form1
Me.tbCoinDataURL = New System.Windows.Forms.TextBox()
Me.btnGetCoinData = New System.Windows.Forms.Button()
Me.Chart1 = New System.Windows.Forms.DataVisualization.Charting.Chart()
Me.Panel1 = New System.Windows.Forms.Panel()
CType(Me.Chart1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
Me.SuspendLayout()
'
'tbCoinDataURL
'
Me.tbCoinDataURL.Location = New System.Drawing.Point(18, 18)
Me.tbCoinDataURL.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.tbCoinDataURL.Location = New System.Drawing.Point(12, 12)
Me.tbCoinDataURL.Name = "tbCoinDataURL"
Me.tbCoinDataURL.Size = New System.Drawing.Size(494, 26)
Me.tbCoinDataURL.Size = New System.Drawing.Size(331, 20)
Me.tbCoinDataURL.TabIndex = 0
Me.tbCoinDataURL.Text = "https://www.hirnwun.de:4555/c/getCoinData.php"
'
'btnGetCoinData
'
Me.btnGetCoinData.Location = New System.Drawing.Point(524, 15)
Me.btnGetCoinData.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.btnGetCoinData.Location = New System.Drawing.Point(349, 10)
Me.btnGetCoinData.Name = "btnGetCoinData"
Me.btnGetCoinData.Size = New System.Drawing.Size(112, 35)
Me.btnGetCoinData.Size = New System.Drawing.Size(75, 23)
Me.btnGetCoinData.TabIndex = 1
Me.btnGetCoinData.Text = "get data"
Me.btnGetCoinData.UseVisualStyleBackColor = True
'
'Chart1
'
Me.Chart1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
Me.Chart1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
ChartArea1.AxisX.Crossing = -1.7976931348623157E+308R
ChartArea1.AxisX.IsLabelAutoFit = False
@@ -79,8 +76,7 @@ Partial Class Form1
Legend1.Position.X = 86.59587!
Legend1.Position.Y = 3.0!
Me.Chart1.Legends.Add(Legend1)
Me.Chart1.Location = New System.Drawing.Point(4, 54)
Me.Chart1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.Chart1.Location = New System.Drawing.Point(12, 39)
Me.Chart1.Name = "Chart1"
Series1.ChartArea = "ChartArea1"
Series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line
@@ -88,31 +84,21 @@ Partial Class Form1
Series1.Legend = "Legend1"
Series1.Name = "DOGE"
Me.Chart1.Series.Add(Series1)
Me.Chart1.Size = New System.Drawing.Size(1125, 348)
Me.Chart1.Size = New System.Drawing.Size(776, 399)
Me.Chart1.TabIndex = 2
Me.Chart1.Text = "Chart1"
'
'Panel1
'
Me.Panel1.Controls.Add(Me.Chart1)
Me.Panel1.Location = New System.Drawing.Point(37, 113)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(1151, 452)
Me.Panel1.TabIndex = 3
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 20.0!)
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1200, 692)
Me.Controls.Add(Me.Panel1)
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.Chart1)
Me.Controls.Add(Me.btnGetCoinData)
Me.Controls.Add(Me.tbCoinDataURL)
Me.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
Me.Name = "Form1"
Me.Text = "Form1"
CType(Me.Chart1, System.ComponentModel.ISupportInitialize).EndInit()
Me.Panel1.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -121,5 +107,4 @@ Partial Class Form1
Friend WithEvents tbCoinDataURL As TextBox
Friend WithEvents btnGetCoinData As Button
Friend WithEvents Chart1 As DataVisualization.Charting.Chart
Friend WithEvents Panel1 As Panel
End Class

View File

@@ -13,6 +13,10 @@ Public Class Form1
tblData.Columns.Add("tStamp")
tblData.Columns.Add("priceEUR")
Chart1.ChartAreas(0).AxisX.ScaleView.Zoomable = True
Chart1.ChartAreas(0).AxisY.ScaleView.Zoomable = True
With Chart1.Series.Item(0)
.LabelAngle = 90
.MarkerStep = 5
@@ -49,7 +53,74 @@ Public Class Form1
'Dim resp As HttpWebResponse = wReq.GetResponse
End Sub
Dim numberOfZoom As Int32 = 0
Private Sub Chart1_MouseWheel(sender As Object, e As MouseEventArgs) Handles Chart1.MouseWheel
'Dim chart = Chart1
'Dim xAxis = chart.ChartAreas(0).AxisX
'Dim yAxis = chart.ChartAreas(0).AxisY
'Try
' If e.Delta < 0 Then
' xAxis.ScaleView.ZoomReset()
' yAxis.ScaleView.ZoomReset()
' ElseIf e.Delta > 0 Then
' Dim xMin = xAxis.ScaleView.ViewMinimum
' Dim xMax = xAxis.ScaleView.ViewMaximum
' Dim yMin = yAxis.ScaleView.ViewMinimum
' Dim yMax = yAxis.ScaleView.ViewMaximum
' Dim posXStart = xAxis.PixelPositionToValue(e.Location.X) - (xMax - xMin) / 4
' Dim posXFinish = xAxis.PixelPositionToValue(e.Location.X) + (xMax - xMin) / 4
' Dim posYStart = yAxis.PixelPositionToValue(e.Location.Y) - (yMax - yMin) / 4
' Dim posYFinish = yAxis.PixelPositionToValue(e.Location.Y) + (yMax - yMin) / 4
' xAxis.ScaleView.Zoom(posXStart, posXFinish)
' 'yAxis.ScaleView.Zoom(posYStart, posYFinish)
' End If
'Catch
'End Try
Dim chart = Chart1
Dim xAxis = chart.ChartAreas(0).AxisX
Dim yAxis = chart.ChartAreas(0).AxisY
Dim xMin = xAxis.ScaleView.ViewMinimum
Dim xMax = xAxis.ScaleView.ViewMaximum
Dim yMin = yAxis.ScaleView.ViewMinimum
Dim yMax = yAxis.ScaleView.ViewMaximum
Dim IntervalX As Integer = 3
Dim IntervalY As Integer = 3
Try
If e.Delta < 0 AndAlso numberOfZoom > 0 Then
Dim posXStart = xAxis.PixelPositionToValue(e.Location.X) - IntervalX * 2 / Math.Pow(2, numberOfZoom)
Dim posXFinish = xAxis.PixelPositionToValue(e.Location.X) + IntervalX * 2 / Math.Pow(2, numberOfZoom)
Dim posYStart = yAxis.PixelPositionToValue(e.Location.Y) - IntervalY * 2 / Math.Pow(2, numberOfZoom)
Dim posYFinish = yAxis.PixelPositionToValue(e.Location.Y) + IntervalY * 2 / Math.Pow(2, numberOfZoom)
If posXStart < 0 Then posXStart = 0
If posYStart < 0 Then posYStart = 0
If posYFinish > yAxis.Maximum Then posYFinish = yAxis.Maximum
If posXFinish > xAxis.Maximum Then posYFinish = xAxis.Maximum
xAxis.ScaleView.Zoom(posXStart, posXFinish)
'yAxis.ScaleView.Zoom(posYStart, posYFinish)
numberOfZoom -= 1
ElseIf e.Delta < 0 AndAlso numberOfZoom = 0 Then
yAxis.ScaleView.ZoomReset()
xAxis.ScaleView.ZoomReset()
ElseIf e.Delta > 0 Then
Dim posXStart = xAxis.PixelPositionToValue(e.Location.X) - IntervalX / Math.Pow(2, numberOfZoom)
Dim posXFinish = xAxis.PixelPositionToValue(e.Location.X) + IntervalX / Math.Pow(2, numberOfZoom)
Dim posYStart = yAxis.PixelPositionToValue(e.Location.Y) - IntervalY / Math.Pow(2, numberOfZoom)
Dim posYFinish = yAxis.PixelPositionToValue(e.Location.Y) + IntervalY / Math.Pow(2, numberOfZoom)
xAxis.ScaleView.Zoom(posXStart, posXFinish)
'yAxis.ScaleView.Zoom(posYStart, posYFinish)
numberOfZoom += 1
End If
If numberOfZoom < 0 Then numberOfZoom = 0
Catch
End Try
End Sub