PostScriptフォント=ベジェ、TrueType=Bスプラインというよくある誤解について

日本で出ているフォントの技術解説記事では8割くらいは「OpenTypeはベジェだけどTrueTypeはスプライン」という誤った記述がされているのが一般的です。 先行書の記述を鵜呑みにせずに、Bézier曲線とかB-スプライン補間とかがどういう物か、ちゃんとした数学書にあたって調べればこういう誤解の再生産は無かったんでしょうが…。
22
小形克宏 @ogwata

@ksmakoto ありがとうございます。ある条件で、2次Bスプライン曲線と2次ベジェ曲線、3次Bスプライン曲線と3次ベジェ曲線は同一になるということでしょうか? @KANOU

2014-12-18 12:52:55
Yuzo Matsuzawa @yuzomatsuzawa

@ogwata 「実は、・2次ベジェ曲線・2次 B-スプライン曲線の2つは同じものです。」koujinz.cocolog-nifty.com/blog/2009/05/p… 数学的な証明はこの先にありそうですがリファレンスリンク切れ。 en.wikipedia.org/wiki/Spline_(m…

2014-12-18 13:08:45
きしもと @ksmakoto

@ogwata @KAN0U 直感的にわかりやすい説明がありました。引用「平たく言うと、Bezier曲線の集合体として表現される曲線で」 o2-inc.com/publicity/medi…

2014-12-18 13:13:07
小形克宏 @ogwata

@ksmakoto ご教示の記事 o2-inc.com/publicity/tech…拝読。一定の条件下でベジェ曲線とBスプライン曲線が重なる(のか包含かは措くとして)ことは確かとしても、TrueTypeフォントの曲線としてはやはり2次ベジェ曲線が相応しいように思います。 @KAN0U

2014-12-18 14:45:34
きしもと @ksmakoto

@ogwata 仕様にある表現をそのまま使うのが無難というか、基本、ということで同意します(実際上同じかどうか、という議論とは別に)。

2014-12-18 15:52:45
小形克宏 @ogwata

@ksmakoto ありがとうございます。それはそうですよね。

2014-12-18 16:55:13
狩野宏樹 @KAN0U

@ogwata @ksmakoto TrueTypeの点の与え方は基本Bezierですが、BスプラインのようなG2-連続な曲線を効率良く描くための拡張もあります( twilog.org/KAN0U/date-110…参照)。その一番下のリンクにありますが、どっちにしろ曲線の形は放物線です

2014-12-18 21:45:02

3年前の記述

狩野宏樹 @KAN0U

この部分だけ見れば2次B-スプライン曲線の定義に従ってデータが格納されていると言えます。さらに重要な性質は bit.ly/n4rnszbit.ly/oIk4ya で、曲線の自由度が低いためTTFではOTFより曲線を細かく分けて作る必要があります。

2011-08-18 18:59:21
狩野宏樹 @KAN0U

2次Bスプラインは bit.ly/odUVkv の2つめのJavaアプレットを見ると分かりますけど、各control pointの中点に点を補えば2次ベジェ曲線になって、両者の関係は自明ですね。但し、形式的にはTTFはon-curve pointとoff-curve

2011-08-18 18:27:56
狩野宏樹 @KAN0U

pointの2種類の点から構成されていて、on-onと並んでいたら直線で、on-of f-onの順で並んでいたら2次ベジェ曲線で結ぶことになっているというだけの話です。TrueTypeでは「off-offという並びがあるときは、その中点にon点が有るものと見なす」という規定もあり

2011-08-18 18:37:59

きしもと @ksmakoto

@KAN0U はい。Bスプラインという語を説明に使わなかった理由はわかりませんが、仕様の「Such a curve is shown in FIGURE 2.」から後の説明は要するにBスプラインと同じことですね。p2とすべき所がp3になってたり、図が欠けてたりでわかりにくいですが

2014-12-18 22:02:55
狩野宏樹 @KAN0U

@ksmakoto 最初に「TrueTypeの曲線は二次Bスプライン」と言った人は、そこまで解っていて簡単に言ったのかもしれませんね…。

2014-12-18 22:09:42
きしもと @ksmakoto

@KAN0U 今考えてみると、その可能性もありますね..

2014-12-18 22:12:16

きしもと @ksmakoto

端点が一致する(一般に見掛ける)Bスプラインは端点の多重度を上げた一種の言うならばNUBS(NURBSから「有理」のRをトル)

2014-12-18 13:40:26
きしもと @ksmakoto

NURBSは真の円が描ける...

2014-12-18 13:41:22
きしもと @ksmakoto

そうかMathWorld様を見るという手があったんだ。MathWorld様だと「A B-spline with no internal knots is a Bézier curve.」と表現している

2014-12-18 19:04:34
きしもと @ksmakoto

授業でNURBSの「重み」の直感的な解釈を聞いたはずなんだが、確か忙しかったか何かでちゃんと課題をやらなかったのでちゃんと覚えてないんだよなぁ...

2014-12-18 19:10:30
きしもと @ksmakoto

すごい。「美しい曲線」の研究だ(あやしい研究でなくて) yoshida-lab.net/research-j/log…

2014-12-18 19:43:00
きしもと @ksmakoto

(たぶんこの曲線をベースにした曲面だと、反射像が滑らかに変化するとか、そういう特性が得られる、ということをもって「美」としているようだ)

2014-12-18 19:44:58