原创 WPF 折線/座標點繪製 Largest-Triangle-Three-Buckets算法

本文算法來自 https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf 作者對比了幾個算法,主要突出的是  Largest-Triangle-Three-Buckets算法,我個人翻

原创 WPF 折線/座標點的繪製 基於序列重要點的時間序列分割算法代碼實現

論文的中心內容是: 重要點的判斷方式是基於垂直距離最大值,同樣和道格拉斯普克算法有一個限定值。 分段過程也是基於第一個找出的點並由此遍歷的過程。 具體論文要搜索:基於序列重要點的時間序列分割 給出地址:https://www.docin.c

原创 WPF 折線/座標點繪製 曲線抽稀 (Douglas-Peucker)道格拉斯-普克算法

這個算法經常用,例如GIS,數據保存,數據繪製都會用到。 算法是1973提出的,久經考驗的算法,具體詳情可以參考百度。 算法比較簡單,大意是: ① 給出一個限定值表示距離 ② 點集合或者座標集合的首尾自動相連接成爲直線,並會記錄首尾兩點到輸

原创 WPF 最小二乘法的簡單的實現

整理代碼時發現的老代碼,略微整理髮上來,理論知識我就不細說了,大意就是這條線是所有點到這條線的垂直距離最短。 至於我寫的對不對就由各位自己分辨,如果我寫錯請告訴我. GIF截圖   代碼   /// <summary>

原创 WPF 簡單使用keybd_event模擬觸發鍵盤

主要是添加Win32函數 其次是定義鍵盤按下,擡起的兩個固定值。 [DllImport("User32.dll")] public static extern void keybd_event(byte b

原创 WPF 牛頓多項式插值和三次樣條插值法的簡單實現

折騰不少時間 牛頓插值法主要是在於差商,三次樣條主要矩陣,發現自己不會,又回頭整矩陣的,什麼線性方程的解法..簡直頭大 牛頓的差商,其實就是遞歸,雖然計算一次是可以用數組存起來,但是寫出來的時候是遞歸感覺很爽,就滅有存儲各階段的結果,導致計

原创 WPF 拉格朗日插值法簡單實現

學習學習文化,提升自己 拉格朗日插值法,解釋起來差不多就是,【有很多點,我不知道構造這些點的具體函數,但是我可以嘗試在每個點的時讓其他點的縱座標都爲零,這個點爲縱座標爲1,此時得到一個點的函數,後續每個點重複操作,最後相加即可】 知乎這篇說

原创 WPF 關於繪圖個人總結

內容均爲個人總結。 如果錯誤請告知,並多多見諒。 總的來說繪圖是分爲兩個範圍,一是形狀,二是像素填充。 形狀也就是繪製矩形,圓形,複雜組合形狀。 像素填充例如圖像填充,但更多是位圖操作,同樣也是可以繪製形狀,不過對於形狀的填充算法相對很難,

原创 通過數據歸一化提高WPF繪圖效率

這裏不對歸一化做太多介紹。 首先我們使用的都稱作爲特徵縮放的四種方法之一,min-max normalization的算法 總體而言,縮放數據到0~1,不改變數據分佈。 算法也是非常簡單。 計算過程爲遍歷子項減去集合的最小值併除以集合的最大

原创 WPF 利用路徑動畫做一個環形加載動畫

簡單用一個路徑動畫做一個環形加載動畫 四個點,啓動時間各個不同,運行時間相同。啓動時圓形半徑爲0,啓動後恢復正常半徑。 gif截圖略慢,實際運行還是可以的     <Window.Resources> <PathGe

原创 WPF 實現簡易事件聚合

一直很心水棱鏡(Prism)的事件聚合器。 看了下源代碼,代碼不多,但是東西真的不少。 簡單的實現了一下,沒有弱引用,沒有線程安全,沒有線程級別。   總的來說 原理還是很好理解的。   有點像觀察者,或者說就是?   總共分爲訂閱,發佈

原创 WPF 使用漸變色在繪圖中靈活應用

文本銜接使用DrawingVisual繪圖 效果圖 漸變色可以將多個顏色組合在一塊,形成漸變色。 不過當顏色組合非常有規律時,就不是漸變色的變現形式了。 例如【0 0.25, 0.25 0.5, 0.5 0.75 ,0.75 1】每兩個一

原创 WPF 使用DrawingVisual和DispatchFrame快速提升繪圖速度

參考資料: https://www.jianshu.com/p/d308641498aa https://zhuanlan.zhihu.com/p/37167062   這是一個來自很久以前的代碼 通過DrawingVisual和Dispa

原创 WPF 極座標簡單應用

在圓形佈局中說過極座標。 極座標是長度和邊與極軸之間的角度的座標表示。 換句話說,只要知道角度和長度(與中心點的距離),我們就能求出這一點的座標,相對的我們知道這個一點的XY座標也能求出角度和長度。 極座標的工具性真的很強,在繪圖,動畫上

原创 WPF 簡易日期控件 魔改ListBox

先上截圖   修正: 應該將SetTime方法修改爲,行號爲207行開始修改 var nk = Day_of_week(year, month, 1); if (nk == 0)