日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ST_Curve --- 一个专业的曲线绘制控件

發布時間:2025/3/12 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ST_Curve --- 一个专业的曲线绘制控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:什么是ST_Curve?
?

???????ST_Curve是一個專業的曲線繪制控件,只要是xy坐標系的曲線,都可繪制,縱坐標只能顯示為值,橫坐標可以顯示為值或者時間(如果你愿意為控件提供插件,則坐標可顯示任意字符)。

Top

二:ST_Curve面向對象?
?

???????二次開發者,即你必須要對ST_Curve進行開發,它才能使用,就像現在流行的諸多界面庫一樣。

Top

三:ST_Curve有什么使用與分發限制?
?

???????使用無任何限制,分發時,必須保證控件的完整性,包括但不限于主控件、開發文檔等。

Top

四:ST_Curve的特點與優勢(對操作者)
?

???????鼠標任意拖動曲線,任意縮放曲線,定點(鼠標取點或者二次開發者傳入點)縮放曲線,支持類似K線圖的縮放方式,數字鍵快速找到曲線,F5鍵居中曲線,F4鍵顯示隱藏幫助(幫助顯示于背景圖之上,幫助上會有更多的快捷鍵,這里不一一列出了),支持方向鍵,翻頁鍵等,可顯示三維效果,可顯示全局位置預覽窗口并通過它快速移動曲線。

Top

五:ST_Curve的特點與優勢(對開發者,只說說幾個重點,其它的請看開發文檔)
?

???????自定義各種顏色,字體,背景,畫筆,填充模式等,可切換坐標原點到窗口四個角的任意一個,可導出圖片(bmp、png、jpg、gif),可批量導出圖片,以及定時導出圖片,可導入圖片作為背景或者用于填充曲線,可導出曲線到文件(支持二進制文件,它速度最快,還支持文本文件,它的好處是可以手動編輯,支持的文本格式包括:ansi、unicode、unicode big endian、utf8,這些文本格式都被windows支持),可繪制實時曲線(曲線自動滾動),支持在各個方向上對曲線進行填充,支持打印,打印或者導出圖片時,可指定只對某一條曲線,或某一段數據;支持注解顯示;支持數據持久化;支持批量添加數據。

Top

六:ST_Curve的開發環境與運行平臺
?

???????控件的開發環境為vc2015,unicode(所以控件無法加載時最可能的原因就是缺少MFC140),二次開發環境則是所有可以使用控件的地方,運行平臺為winXP及其以上的操作系統,如果需要在老windows下面使用,請向我索取多字節版本控件。

Top

七:應用舉例(演示的都是一些較為高級的應用,最普通的繪制普通折線圖并沒有演示)
?


???????上圖演示了曲線的斷點,以及hatch和Solid填充模式,綠色的曲線還演示了按方波的顯示效果。

???????上圖演示了高級應用,繪制較為專業的柱狀圖,還演示了Pattern填充模式。

???????上圖演示了向各個方向填充。

???????上圖演示了不太常用的功能。

???????上圖演示三維顯示效果。

Top

八:補充說明
?

???????我本人只是一個VC開發者,并不懂得如何做一個漂亮的網頁(幸好北京的白大慶朋友幫我做了這個網頁),同樣, 開發文檔的組織可能也不好(注意我只說的是組織得不好,至于函數功能性的描述方面,我相信說得還是很清楚的),比如說文檔沒有導航欄,沒有超鏈接等。但有一個事實,就是你不用付費就可以使用,我相信,只要你能耐心的把開發文檔看完,你一定會留下這個控件的,不管你當前是否用得上。

Top

九:鳴謝(排名不分先后)
?

???????感謝北京的Ordie大哥,不管是在控件的編制過程中還是在我平常的工作中,都給予我很大的幫助,在此表示感謝;
???????感謝屋只同學幫我發現一些BUG,并向自己的同學推薦本控件;
???????感謝友情水幫我發現一些BUG,并提出一些寶貴意見,比如將曲線數據保存到圖元文件就是他的主意;
???????感謝海之子提出一些意見;
???????感謝北京的白大慶幫我做了這個網頁;
???????感謝北京的程威幫我發現一些打印過程中的BUG,也提出一些意見;
???????感謝華軍、硅谷動力、天平洋電腦網和霏凡下載站為大家提供免費的軟件發布空間;
???????感謝北京的WeiLiang朋友對開發文檔做了重新排版;
???????感謝所有正在使用或者即將要使用本控件的人。

Top

十:下載頁面說明
?

???????在vb和.net等非常高級的語言的開發環境下,橫坐標類型將會被 映射為時間對象(比如DateTime),時間對象有一個致命弱點就是范圍很小,當橫坐標按值顯示的時候,二次開發者可能需要突破時間對象的范圍限制,此時請 使用double版。為了方便下載,也減少對我的咨詢量,以后我不再考慮節省下載流量的問題(現在似乎也沒有必要了),把所有版本打包在了一起,也不再提供 安裝版本,所為一個開發者,對控件注冊一下應該是沒有問題的;開發包里面有詳細的對于每個版本的說明,從2012.7.7這個版本開始,我開始提供64位版本, 關于64位AcitveX,使用上可能會有些問題(這并不是ST_Curve的問題,而是64位控件的普遍問題),請參看我的博客文章:
《vc2010下使用64位控件》,這其中包括了開發及使用64位控件的諸多問題。

下載ST_Curve


更多下載地址(只列了幾個大的網站,其它的下載地址請自行搜索,注意版本很可能不是最新):

華軍:www.onlinedown.net/soft/70445.htm
霏凡軟件站:www.crsky.com/soft/14069.html
硅谷動力:download.enet.com.cn/html/040332008081701.html
太平洋電腦網下載中心:dl.pconline.com.cn/download/52966.html

更新事宜及開發舉例:

???????請大家定時調用控件的接口CheckUpdate來確定當前是否有最新的控件,如果有,強烈建議下載并覆蓋現有的控件,也建議大家重新將控件添加到工程,因為有可能接口會改變,大家多注意一下開發文檔后面的修改日志,接口修改肯定會有說明的。 由于歷史原因,CheckUpdate仍保持以編譯時間為判斷是否有更新的依據,現在由于很多個版本都在一個包里面,而他們的編譯時間肯定不會完全相同,所以大家還是按版本號來判斷是否有更新吧。
???????下面我簡單講一下控件的開發流程,以幫助大家迅速的看到效果,更詳細的開發需要你仔細的閱讀開發文檔。 首先是調用AddLegendHelper函數添加圖例,然后調用AddMainData函數添加曲線點(這兩步的先后關系無所謂),比如:
[c/c++ code]
m_ST_Curve.AddLegendHelper(11, _T("第一條曲線"), (unsigned long) RGB(255, 255, 0), PS_SOLID, 1, FALSE);
COleDateTime Time = COleDateTime::GetCurrentTime();
for (int i = 0; i < 5; i++)
{
???????m_ST_Curve.AddMainData2(11, Time, 90 + .6f * i, 0, 0, TRUE);
???????Time += 1.0 / 24 / 2;
}
[c/c++ code]
至此,如果你可以看到曲線,那么ST_Curve控件就是我寫的,如果看不到,我也不知道是誰寫的!

???????考慮到初學者老是問如何用COleDateTime和COleDateTimeSpan表達浮點數,我這里給一個統一的解釋:
COleDateTimeSpan代表一個時間間隔,它是用浮點數來表達的,所以他們可以隱式轉換(COleDateTimeSpan重載了operator double),表達的方式是1.0代表一天,其它時間間隔以此類推,比如:
1小時 = 1.0 / 24
1分鐘 = 1.0 / 24 / 60
1秒鐘 = 1.0 / 24 / 60 / 60
0.5秒鐘 = 1秒鐘的二分之一
……
COleDateTime代表一個日期,從1899.12.30開始,即1899.12.30等于0,如果是1899.12.31呢,當然就加一天,而一天剛才說過了,等于1.0,所以1899.12.31就是1.0。
可以直接將double數據賦給COleDateTimeSpan或者COleDateTime,可隱式轉換。

總結

以上是生活随笔為你收集整理的ST_Curve --- 一个专业的曲线绘制控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。