在上一期的推送中,我留下了乙個疑問,樂高小滿老師幫我解惑了,驗證之後問題得到了解決,在此整理分享給大家。
疑惑內容:
小滿老師的答覆:
疑問的內容是:通過描點的方式畫的曲線不連續的原因是什麼?
小滿老師的答案是:x值和y值因為存在換算關係,他們的變化速度不一樣,為了保證y值的連續變化,可以減慢x值的變化速度。
下面我們開始進行驗證:
一、x值連續變化時,y值一定是連續變化的嗎?
我使用了上次推送裡的一段程式進行了驗證,加入了數值的記錄。
程式解讀:清除螢幕,為了避免資料線的交叉引入中間變數x(在此感謝山西王老師
匯出x、y值,合併在同一張**上得到的結果是:
從圖中可以看到,x值每次變化1時,y值不是連續變化的(x從29變化到30時,y值從84.0變化到76.3,中間就會留下斷裂的空白),程式實際的執行效果也是有曲線的斷裂。
驗證之後我們可以看到,在這個換算關係中,x值連續變化時,y值不一定連續變化,並且我們可以推導知道:如果兩者的變化曲線斜率的絕對值為1時(y=x或者y=-x)兩者可以同步連續變化,當者的變化曲線斜率的絕對值不為1時,需要將其中乙個值的變化速度減慢進而實現另乙個引數的連續變化。
二、x值變化速度減慢時,y值可以實現連續變化嗎?
修改引數後可以實現每迴圈20次,x值增加1的效果。
程式執行效果如下:
得到的x、y值對應關係如下:
從圖中我們可以看到,減慢了x值的變化速度之後,y值的連續性有所改善,但是還是會在部分數值範圍內出現不連續的情況,這個部分可以通過繼續減慢x值得變化速度實現,但是這樣得操作會導致畫曲線的時間變得很長,這個部分可以通過分段實現。
總結一下,曲線連續的條件是x值和y值都是連續變化的,至少是整數級別的連續。如果出現曲線斷裂的情況可以通過減慢x或者y的變化速度實現,為了兼顧連續性和畫圖速度,可以嘗試進行分段畫圖或者是對現有圖形的疊加和覆蓋操作實現。
AS3動態畫曲線
color ff0000 知識點 color graphics 物件可以繪製圓和正方形,但也可以繪製更複雜的形狀,尤其是在將繪製方法與 math 類的屬性和方法配合使用時。color ff0000 color color ff0000 以下為引用的內容 color color ff0000 colo...
3 使用GDI 畫曲線
1.畫貝塞爾曲線 2.繪製曲線 drawcurve pen pen,point points drawcurve pen pen,pointf points tension 大於或等於 0.0f 的值,該值指定曲線的張力。drawcurve pen pen,point points,float te...
畫平滑的roc曲線
使用matlab畫roc曲線 本來malab曲線的平滑有2種方法 clc,clear a 1 1 6 橫座標 b 8.0 9.0 10.0 15.0 35.0 40.0 縱座標 plot a,b,b 自然狀態的畫圖效果 hold on 第一種,畫平滑曲線的方法 c polyfit a,b,2 進行擬...