はーい!以前私も同じことを考えて、作ってみました!( ゚∀゚)
既存のお絵かきソフトのベクターレイヤーの挙動を参考に、「折れ線の角(頂点)付近に必ず変曲点が来る」ようにした曲線補間アルゴリズムです(≧∇≦)b
基本的な手順は、
(1)折れ線の各頂点に対して角二等分線を求める
(2)その角二等分線の両サイドに、cos曲線のような「x=0付近の傾きが0(接線が水平)な曲線」(これをイーズ・イン(ease-in)な曲線といいます)をはめ込む
(3)以上を完了すると、折れ線の両端以外の辺に2本ずつ曲線がはめ込まれるので、その2本の曲線を、頂点からの距離に応じて重みを変化させながら(片方は0〜1、もう片方は1〜0)合成していく。(ちなみに両端辺には曲線は1本しかはめ込まれないので、合成不要でそのまま描画します)
となります。
ちなみに、イーズ・インであればcos曲線以外の曲線を使ってもOKだと思います(●´ω`●)
■サンプルプルプログラムを以下の公開キーで公開してます。
公開キー【4DC3CKAV】
サンプル内のCOS補間ルーチンの使い方は
「COSINTERP X配列,Y配列,分割数 OUT 補間後のX配列,補間後のY配列」
です。補間後の配列サイズは「(元の頂点数−1)*分割数」になります。
■以下のツイートに、サンプルプログラムの動画があります
https://twitter.com/tksm372/status/1137605465561374720■以下のブログに解説の図があります。
http://puticon372.hatenablog.jp/entry/2018/02/15/000642