台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
1317
 
會員總數:230333
接案會員:6772
文章總數:2320
討論主題:176121
歡迎您免費加入會員
討論區列表 >> VB.NET >> MS Chart 圖形數值取得

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
MS Chart 圖形數值取得
價值 : 20 QP  點閱數:3392 回應數:12

點圖分享到Plurk吧!
樓主

無尾熊
初學者
10 2
281 15
發送站內信

我用 MS chart 畫了一個圖形,請問我要如何換算出圖形中的X,Y值?
目前我只能取的螢幕座標值,但如何對應到圖形或是圖形原點?參考資料如下...

Private Sub Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Chart3.ChartAreas(0).AxisX.Minimum = 0
Chart3.ChartAreas(0).AxisX.Maximum = 100
Chart3.ChartAreas(0).AxisY.Minimum = 0
Chart3.ChartAreas(0).AxisY.Maximum = 50
End Sub

Private Sub Chart3_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Chart3.MouseMove
xx = e.X
yy = e.Y
End Sub



本篇文章發表於2011-08-29 07:54
什麼是iT Power資訊報 新手會員瞧一瞧
1樓
您似乎是想要在用滑鼠移到資料點上時取得X和Y的值是嗎? 如果是, 關鍵在Chart control的GetToolTip事件中,如下所示:





本篇文章回覆於2011-08-29 21:17
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

無尾熊
檢舉此回應
感謝!這解決了我一半的問題,另一半問題則是如果要取得非資料點之X與Y值可以嗎?還是和上述一樣,但要改寫部分敘述?謝謝!


本篇文章回覆於2011-08-29 22:32
--未登入的會員無法查看對方簽名檔--
3樓
我不懂您的意思, "非資料點"並沒有X和Y值也不會被繪在CHART上面, 何謂非資料點?


本篇文章回覆於2011-08-30 06:26
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

無尾熊
檢舉此回應
抱歉沒有說清楚,我是想知道滑鼠座標點(螢幕座標點)可換算出在chart內任何一區域(點)之X,Y值,
如下我已經設定好chart基本圖形
Private Sub PaintPlane()
Chart3.ChartAreas(0).BackColor = Color.White '设置绘图区颜色
Chart3.ChartAreas(0).AxisX.IsMarginVisible = True
Chart3.ChartAreas(0).AxisX.Title = "變位(mm)" 'X轴名称
Chart3.ChartAreas(0).AxisY.Title = "荷重(t)" 'Y轴名称
Chart3.ChartAreas(0).AxisX.Minimum = 0 (chart之X軸原點)
Chart3.ChartAreas(0).AxisX.Interval = 1 '主文字
Chart3.ChartAreas(0).AxisX.MajorTickMark.Size = 1
Chart3.ChartAreas(0).AxisX.MajorGrid.Interval = 0.5 '主線
Chart3.ChartAreas(0).AxisY.Minimum = 0 (chart之Y軸原點)
Chart3.ChartAreas(0).AxisY.Interval = 5
End Sub

Private Sub Chart3_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Chart3.MouseMove
xx = e.X (螢幕座標點)
yy = e.Y (螢幕座標點)
X_line()
End Sub

但是我一直找不到「chart之XY軸原點」對應到螢幕座標點,因為一旦Form變化該座標點又會不同,不知道到這樣敘述可以嗎??謝謝



本篇文章回覆於2011-08-30 10:05
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

展翔研究室
捐贈 VP 給 展翔研究室 檢舉此回應
你只要讀取xVal and yVal這兩個欄位的值就可以取到X和Y的值了(視滑鼠所在的點而定)




本篇文章回覆於2011-08-30 10:33
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

無尾熊
檢舉此回應
感謝!終於可以顯示了!
不過是否一定要按滑鼠才可讀出該點xVal,yVal值,要不然xVal,yVal值是不會隨滑鼠位置自動更新該值



本篇文章回覆於2011-08-31 05:56
--未登入的會員無法查看對方簽名檔--
7樓
xVal and yVal是隨滑鼠移動動態更新其值的, 不用按滑鼠左鍵。


本篇文章回覆於2011-08-31 07:20
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

無尾熊
檢舉此回應
我真的要按滑鼠才可以!奇怪了!
我的程式為VB2010及Microsoft chart control 6.0(SP4)所寫,是否和版本不一樣才有此問題,或是要設定哪一個指令才可以不用按滑鼠左鍵方可攫取資料!


本篇文章回覆於2011-09-02 12:32
--未登入的會員無法查看對方簽名檔--
9樓
您確定以下程式碼是放在Chart的MouseMove Event中嗎? 或許您放到Chart的Click or MouseClick Event中了。





本篇文章回覆於2011-09-02 12:35
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

無尾熊
檢舉此回應
以下是我寫得程式,不知道對不對?





本篇文章回覆於2011-09-02 15:22
--未登入的會員無法查看對方簽名檔--
11樓




本篇文章回覆於2011-09-02 16:04
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

無尾熊
檢舉此回應
我改了不行XY值會出現「-1.#ind」的數值,除非按滑鼠左鍵!如果真的不行我另自行處理,不過現在已經好了很多!哈!


本篇文章回覆於2011-09-03 09:07
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

回覆
如要回應,請先登入.