Classiclll's Blog

an old boy

仮想タイプライターを考える(その3)

イメージ 1

仮想タイプライターを考える(その3) by Processing(Proce55ing)

次は前記事のタイプ用紙のモデルを使ったレミントンタイプライター(こっちはほぼ最終版ーあとはpdf出力)

前記事で書いた

手動タイプライター】は
QWERTY配列の垂直に近い角度で押し下げるキーボード(とシフトメカ)
・押し下げる力で跳ね上がるタイプハンマー、
・ハンマーが当る位置に自動フィードされる二色のインクリボン、
・紙を前後左右に送るためのプラテンと押え、
・プラテンを左に動かす心臓部、エスケープメントメカニズム、
・プラテンを右端まで動かすキャリッジリターンバネ(これが壊れている)
・プラテンを回転させ、紙を上下させるフィードメカニズム、
  :

上のガラクタ置き場仮想タイプライターのアプレットは、上のレミントンタイプライターの操作感をほぼ真似る。
使用フォントもそのものズバリ、MyOldremington

「1」以外のキーに全て反応し、タイプライターらしい(紙の質感と打鍵音は除く)操作感をねらった。
アプレットウィンドウをクリックしてP5を起こしてやってから試す事)
(じゃあ、「1」の文字はどうするの?・・・・・答えは小文字のLを使う事。)
  *だれも使わないと思うけど実験台になってくれる人用(アプリ形式は初めて公開)
    アプリ形式の【Keybord Writer 向けトレーニングマシン】 MacOSX / Windows / Linux

・Enter/Returnキーでキャリッジ&ラインフィード
・BackSpace/Deleteキーでバックフィード
・Del/Optionキーでラインフィード
・CONTROLキーでリボンチェンジ
・↓、↑でプラテンノブを少し手前、奥に廻す
・←、→でプラテンを少し左右にスライドさせる
・SHIFTを押しながらクリックで新しい用紙
(左がWin、右がMacUnixは・・・わからん)

で、
class MyRemington {//レミントンタイプライターは、
 Loc cursor;      //(固定的な)カーソル位置を持ち、
 float fsize;      //ハンマーヘッドに固有の大きさで、
 PFont font;      //固有の字母(フォント)を持ち、
 color ribbon;     //二色のインクリボンを持ち,
 float tab;       //タブスペースを切り替えられ、
 TypingPaper paper;  //セットされたタイプ用紙に対して
 char lastKey;     //直前に打たれた文字を覚えている。(これは内部用)
//
 MyRemington()   //で、タイプライターを作る。
//レミントンへの操作
 TypingPaper setPaper(color pc, float h, float w) {
           //pc色の大きさwxhの用紙をセットする
 void typeFace(PFont f)    //タイプフェースをフォントfにする
 void typeFace(String name)  //タイプフェースをファイルからロードする。
 void setSize(float pnt)   //ハンマーヘッドの大きさを変える
 void ribbon()         //インクリボンを切り替える
 void setTab(float pnt)    //タブスペース(空白幅の倍数)をセットする
 void keyIn(char key)     //キーが打たれた
 void erase()          //用紙を替える
 void feed()          //プラテンを一文字分左にずらす
 void backfeed()        //プラテンを一文字分右にずらす
 void slideRight()       //プラテンを右に少しずらす
 void slideLeft()       //プラテンを左に少しずらす
 void slideUp()        //プラテンノブを少し奥に廻す
 void slideDown()       //プラテンノブを少し手前に廻す
 void cariage()        //キャリッジリリースする(プラテンが右端へ)
 void linefeed()        //一文字分プラテンを奥に廻す
 void tab()           //タブ分スペースを空ける
//
 void draw() {   //描けと言われたら
  if (paper!=null) paper.draw(); //タイプ用紙があれば、それを描いた後で
          //Remington本体(ってカーソルとペーパーカバーだけ)を描く
}

この後は、

・pdf出力(出来るのかなー本家ライブラリのからのリンクまだないし)
・【しなやか】で【曲げられる】紙
・その紙の上に描かれた文字

なんだけど、仮想タイプライターの設計過程を解説するのはここまで。(ここまででも解説書くの大変だった)

今後しばらく、デバッグ中に出来た例題をぼちぼちアップするだけになりそう。
(実は先々週から着手したんだけど、やっとこさかすかな光明が見えたところ)