請教各位,我沒有做MSChart的經驗,
現在我想做成區域的曲線圖,我畫了一個難看的圖
http://home.pchome.com.tw/web/rshonwin/mschart.jpg
我想在當我輸入了X軸與Y軸的數字後,可以知道那個那個交會點是在哪個顏色的區域嗎
請問我該如何著手呢,
謝謝各位的幫忙
現在我想做成區域的曲線圖,我畫了一個難看的圖
http://home.pchome.com.tw/web/rshonwin/mschart.jpg
我想在當我輸入了X軸與Y軸的數字後,可以知道那個那個交會點是在哪個顏色的區域嗎
請問我該如何著手呢,
謝謝各位的幫忙
文章標籤
全站熱搜

跟 MSChart 無關。 不考慮精度,可用 API CreatePolygonRgn 後,用 PtInRegion。 考慮精度則需使用計算幾何著手。參考下列網址方程式 3 (3.6.1 節) http://tlcheng.adsldns.org/Paper/dtmhbp/dtmhbp.htm
謝謝你 我去找了這方面的資料 其中 我的X軸是由左至右愈大 我的Y軸是由下至上愈大 曲線是由左下往右上跑 然後我用 Dim p(7) As POINTAPI Me.ScaleMode = 3 p(0).X = 300: p(0).Y = 110 p(1).X = 400: p(1).Y = 130 p(2).X = 500: p(2).Y = 140 p(3).X = 600: p(3).Y = 150 p(4).X = 600: p(4).Y = 160 p(5).X = 500: p(5).Y = 150 p(6).X = 400: p(6).Y = 140 p(7).X = 300: p(7).Y = 130 hRegion = CreatePolygonRgn(p(0), 8, ALTERNATE) hBrush = CreateSolidBrush(RGB(255, 0, 0)) 它變成由左上跑到右下 那麼我想問的是 我如果輸入了一個X,Y的數值, PtInRegion(hRegion, X, Y) 它可以對應的到嗎(因為它的Y值愈大,是愈下面) 謝謝各位
你用一個隱藏的 DC 來判斷也可以,你只需要把 MSChart 座標轉換到隱藏的 DC 上。
好的,謝謝你 另外喔,如果那個交會點剛好落在邊上,它就不會有任何顯示了 比方說一個區域,當我輸入的數字,剛好摸到那個區域的邊邊,它就不會有顯示 一定要再將數字多一點點,離開那個邊邊,才會顯示出來 請問這是本身程式的問題嗎 謝謝各位
不管用哪套 Point In Areal 的演算法,通常把線上視為區域外,以計算幾何方法的那篇來看,就概分成外、內、點上、線上四種,實際上還分的更細。 大部分計算方式是採橫掃瞄或縱掃描,也會有類似問題,因為要避免相切的判斷,造成大量運算判斷,一般放棄線上或相切的問題。 Windows API 中,我印象 LineDDA 是專門做線上用,但是他是容許一個誤差範圍去做,所以線外也有可能判斷在線上。 此外,Windows API 採用的是整數座標,所以也有可能因進位誤差導致在線上附近有較不精密的判斷,大部分的軟體多用整數座標或格網座標降低內點判斷的計算量。
好的,謝謝你熱心的幫忙 這樣子我再將我的區域座標再做分配 非常感謝你的幫忙