ベジェ曲線
- 2018/04/21 01:50
-
典型的なパラメトリック曲線の一種である, ベジェ曲線(Bézier curve)についての学習メモ. パラメトリック曲線とその一種であるエルミート曲線に関しては, 前回の記事を参照.
ベジェ曲線は, パラメータ と複数の制御点 から構成されるパラメトリック曲線の一種である1. 始点と終点の線分から成る, 次数 のベジェ曲線は の制御点をもち ( の制御点があるベジェ曲線を 次ベジェ曲線という), この内分点を繰り返し取ることによって, 曲線を得ることができる. この始点と終点の線分を, セグメントといい, これが得られる曲線そのものになる2. まず, ここでは 2 次ベジェ曲線を描くとして, そのイメージをつけるために, 図3を用いてその概要を見る. なお, 2 次ベジェ曲線は true type フォントなどで使われている.
エルミート曲線
- 2018/04/16 01:50
-
典型的なパラメトリック曲線の一種である, エルミート曲線についてのメモ.
パラメトリック曲線
そもそもパラメトリック曲線とは, 任意のパラメータから各々の座標を陽関数形式で表現できる曲線のことをいう. このとき定義できる関数 がパラメータ 1 の多項式である場合, それを多項式曲線といい, 有理式である場合, それを有理曲線という. 例えば, 直線の方程式 は,
とパラメタライズできる. この方程式では, パラメタライズせずとも, に 1 つの実数を代入すれば, 必ず が求まる(逆も言える)ことは明らかである. 次に, 3 次曲線 について考える.
ghc パターンマッチの時間計算量
- 2018/04/08 01:50
-
reddit で見かけて, ふと気になったのでメモ.
GCC で C/C++ コードの switch
文および case
節をコンパイルするとき,
case
節の数が一定以上を超えると, ジャンプテーブルを利用したアセンブリが吐き出される1.
同様にして, ghc はパターンマッチでジャンプテーブルが用いられる場合がある.
C++20 Calender and timezone library
- 2018/03/27 01:50
-
本エントリは, 元々 P0355R5 を参考にまとめを行った記事であるが, その後 P0355R7 で
sun
といった曜日を表すリテラルが全てSunday
,may
といった月を表すリテラルが全てMay
といった形式に変更され, またこれらとstd::chrono::last_spec
型のlast
1がstd::literals::chrono_literals
名前空間下からstd::chrono
名前空間下に移動された.system_clock::to_time_t
とsystem_clock::from_time_t
を Deprecated としていたが, Deprecated でなくなった.
といった他に, 細かい文面の改修や, constexpr
がつけられるなどの変更が加えられたため, 本エントリにおいても,
それに従い該当箇所を改変している (差分を示すことも考えたが, ただ見難くなるように感じたため,
そのようなことはしなかった).
これらの変更には対応したつもりだが, 細かい厳密な記述に関しては,
やはり P0355 の最新リビジョンを追って確かめてほしい(そして, 間違った箇所があれば指摘くださると嬉しい).
要旨
先週, 米国フロリダ州ジャクソンビルで ISO C++ 委員会によって, C++技術仕様(TS, 実験的機能ブランチ) と次の国際標準(IS) C++20 に関する作業が行われた. 同会議で Reddit で紹介されているように, C++20 にいくつかの機能が追加された. そのうちの 1 つである, Calender and timezone library に関する新機能, 概要のメモ.
- 全機能の網羅性を主軸としたエントリではない(が, 独断と偏見により重要に感じた内容は結果的に網羅してしまっている部分もある)ため注意
- 以下, 特に断らない限り, 全てのコード片において
using namespace std::chrono;
,using namespace std::chrono_literals;
がされているとする. - 以下, 特に断らない限り, 各コードブロック以外で言及される
内容
といった記述については, 名前空間std::chrono
を省略する.
ハローワールド
- 2018/03/23 01:50
ブログを移転した
これまでは約二年ほど はてブロに, メモや学習ログなどを投稿し, 利用させて頂いていたが, の記述においてはてブロ固有の独特な記法を必要とされることがあり, これらの点で 少し不便に感じていたので, 新たにブログを立ち上げこちらに移転することとした. このブログは github pages でホスティングされており, Pelican という Static site generator によって成り立っている. またテーマは, nikhil-theme をフォークして利用させて頂いている.