一部のcanvas2dメソッドには、驚くべき機能があるように見えることに気づきました。特に、context.lineTo(x, y)
とcontext.drawImg(imgObj, x, y)
メソッド。x、y座標は整数でのみ取得されると思っていましたが、フロートとして指定すると、何か特別なことが起こるようです-ブラウザは、グラフィカルコンポーネントのエッジのピクセルの色を魔法のように調整してペイントするようですそれらは、2つの個別の隣接ピクセル座標の「中間」にあります。
たとえば、ストロークの色が黒であるとすると、を呼び出しますcontext.lineTo(100.2, 0)
。x座標100に向かう素敵な黒い線が表示されますが、座標101のピクセルもペイントされていますが、x座標の小数部分に対応しているように見える灰色の陰影がペイントされています(たとえば、context.lineTo(100.4, 0)
)。
jsfiddleデモを作成しました
ここでは、画像と線の両方をアニメーション化して、効果を視覚的に示しています。どちらの場合も、下の画像と下の線は、浮動小数点引数をキャンバスメソッドに渡すことでアニメーション化されました。ブラウザが魔法をかけているため、これらが非常にスムーズであることがわかります。高いモニター解像度ではライン効果を確認するのは困難ですが、それはあります。エッジをブレンドするだけでなく、透明感を十分に意識しているように見えるので印象的です。
オペラ、Firefox、そしてクロームはすべてそれをしているようです。
私の質問:
これはどのブラウザ/仕様でも文書化されていますか?
これには用語がありますか?
これを何らかの形のアンチエイリアシングまたは補間と呼びたいのですが、これらの用語のどちらもこれに適しているとは思いません。それが何と呼ばれているのか知りたい。