|
發表於 2013年2月25日 11:57 AM
|
顯示全部樓層
關於 擬合曲線 :
(1) 之前我採用 "不通過 控制點(Spline By Points)" 的 Bezier(貝茲)二次曲線 :
http://www.rctw.net/forum.php?mod=viewthread&tid=241130&page=72#pid2021403
可以快速的計算, 但因為不通過控制點, 因此控制點與實際曲線有偏離.
(2) 查閱了JR pcm10 與 Futaba 18mz的手冊:
兩個控都可以在 "任意X位置" 新增點來生成通過控制點的曲線.
實際操作JR10S時發現其實相鄰兩個X位置無法小於(12%, JR10S是 min~max : 0~100%)
(3) 之後查閱了,Bezier(貝茲)曲線原理,又發現了其他通過控制點(Spline by Points)的作法:
http://zh.wikipedia.org/wiki/貝茲曲線
http://blog.csdn.net/microchenhong/article/details/6316332
(4) 我用Excel試作了AGG(Anti-Grain Geometry) Bezier Curves,
可以用 k(%) 調整曲線扭曲程度.
才發現兩個相鄰兩個X位置(-10 與 0)太接近會造成曲線過度扭曲(這個相鄰值與JR10S相當).
(5) 最後, 將此 AGG Bezier Curves 用 DEVO10模擬器 實現如下:
計算主要和上次的不通過控制點方式一樣,只是先擴增虛擬控制點.
X位置仍然採用(範圍:-10000~+10000) n個點等區分.
curves_Bspline2.zip
(3.1 KB, 下載次數: 160)
通過 控制點(Through Points):
之前的 不通過 控制點(Spline By Points):
(6) 若要做到如同JR或Futaba可以在 "任意X位置" 新增點,將需要解一元二次方程.
關鍵點在 如何"快速開根號" !!
[ 本帖最後由 hmjack2008 於 2013年2月25日 02:00 PM 編輯 ] |
|