パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

MacPaint と QuickDraw のソースコード、公開される」記事へのコメント

  • QuickDrawはどのように素早く円を描いていたのか?
    http://d.hatena.ne.jp/zariganitosh/20100318/1269006632 [hatena.ne.jp]

    ジョブスの、流石と思わせる逸話もあり興味深いページですよ。

    • by Anonymous Coward

      そこで紹介されているDDA(Digital Differential Analyzer)は、
      ごく普通のパソコン誌で紹介されていて広まったテクニックだったので、
      8bit時代のパソコン少年なら誰でも知っているぐらいありふれた知識だったのですが、
      凡庸な身の上のおじさんから見ても、なんだか隔世の感がありますね。

      • by taka2 (14791) on 2010年07月22日 13時14分 (#1798914) ホームページ 日記

        初めて Bresenham のアルゴリズムに出会ったときはものすごく感動しました。
        直線の描画アルゴリズムとして紹介されることが多いですが、
        さまざまな場面で「補間処理」に使える、非常に応用範囲の広いアルゴリズムなんですよね。
        画像の回転とか解像度変換とか音声のサンプリングレート変換とかとか、いろんな場面で使ってきました。

        その後時代が進んでCPUが速くなるにつれ、Bresenham を使うことは減りました。
        代わりに浮動小数点数を使った単純なDDAを使うように。
        (sqrtとかの算術関数はループから追い出すけど、加減乗除ぐらいは気にしない)
        可読性の点から、そういったコードの方がメンテしやすいんですよね。

        さらに時代が進んで、今はsqrtなんかもループの中に入れたようなコードをばんばん書いてます。
        境界条件での動作チェックとかを考えると、DDAすら面倒で…

        速度的に問題出たらDDAに書き換えようとか思うのですが、それで問題出ることがあまりないんですよね。
        線形探索だとかバブルソートだとかはオーダーが違うので問題になりやすいですが、
        Breseham の直線補間なんて、同じO(n)の範疇ですからねぇ…

        最近はライブラリが豊富なので「既存のモジュールを組み合わせる」ようなプログラミングばかりで
        なんだか年々、プログラマとして退化していってるんじゃないかと思うことがたまにあります。

        親コメント

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

処理中...