投稿

ブログの説明

学校に通わないで学んだことを記しています。間違っているところが何かありましたらご指摘下さると幸いです。コメントに対する返信が遅れる可能性があります。その場合は申し訳ございません。

このブログでは広告を表示しています。このブログ内の投稿記事を検索するには右上の拡大鏡のアイコンを、アーカイブやラベル付けから投稿記事を閲覧するには左上の三重線のアイコンをクリックして下さい。

数式の表示にはMathJaxを利用させていただいています。数式の表示のためにJavaScriptが有効である必要があります。そうでない場合、訳の分からないLaTeXのコードが表示されます。幾何学図形やチャートの表示にはHTML5 CanvasやGoogle Chartを使用しています。その表示のためにもJavaScriptが有効である必要があります。

角度とそれを測る単位系(度数法や弧度法等)を理解する

角度 平面上の角度は時計の針のようにモデル化することができる。つまり、1つの回転軸を共有する2本の半直線の回転量の差として表せる。 このウェブブラウザはHTML5 CanvasかJavaScriptに対応していません。 このウェブブラウザはHTML5 CanvasかJavaScriptに対応していません。 半直線は矢印の方向に無限に伸びる光線のようなイメージ。この2本の半直線は角度のアームと呼ばれることがある。 2本のアームの回転軸は頂点と呼ばれている。頂点はOやPやQなどの文字で表されることが多い。 角度それ自身は \( \theta \) スモールシータ や \( \varphi \) スモールファイ もしくは \( \alpha \) スモールアルファ や \( \beta \) スモールベータ といったギリシア文字で表されることが多い。スモールシータは数学でよく用いられており、スモールファイは工学でよく用いられる。 ちなみに、3次元の極座標系の1つである球面座標系では極角(緯度)がスモールシータで、方位角(経度)がスモールファイで表されていることが多い。 角度を記号によって表すには角を表す\( \angle ABC \)の前にmeasureのmを添えて\( m \angle ABC \)と記すことができる。 このウェブブラウザはHTML5 CanvasかJavaScriptに対応していません。 角度が度数法で0°から90°の範囲にあるとき、その角度は 鋭角 えいかく と呼ばれている。角度が度数法で90°から180°の範囲にあるとき、その角度は 鈍角 どんかく と呼ばれている。 下の図では青が鋭角、赤が鈍角。下の図では青い角と赤い角は互いに 補角 ほかく の関係にもある。 このウェブブラウザはHTML5 CanvasかJavaScriptに対応していません。 2つの角度の合計が180°のとき、それらの角度は互いに補角の関係にある。英語ではsupplementary anglesと呼ばれている。2つの角度の合計が90°であるとき、それらの角度は互いに 余角 よかく の関係にある。英語ではcomplementary anglesと呼ばれている。したがって上の図が補角(a supplementary angle)で下...

JavaScriptで幾何学模様を描いてみた

14個とも全て同じコードによって描いた。たった1つのパラメーターの値を変えるだけで同じコードから様々な幾何学的模様が作図できた。これらはその一部の例。 Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported Canvas not supported なんで同一コードからこのように異なる模様が出来上がるのかは理解できない。ちょっと不思議。 幾何学模様を描く 1から360までの間の整数値を入力して描画ボタンを押してみてください: 描画 Canvas not supported

LibreOffice Basic ユーザーが定義するデータ型(構造体)

ユーザー定義のデータ型(構造体) この投稿ではLibreOfficeかApache OpenOfficeのマクロ言語であるBasicにおいてユーザー定義のデータ型を宣言する2種類の方法について記す。 ユーザー定義のデータ型はカスタム・データ型と呼ばれていることもある。それは型の違いに関わらず1つ以上の変数をまとめて1つのデータ型とし、そのデータ型に名前を付けたもの。その要素となる変数はメンバーと呼ばれている。 ユーザー定義のデータ型はC言語で言うところの構造体、Pascalで言うところのレコードによく似ている。Pythonの辞書にも似ているが、辞書はハッシュ・テーブルの一種であると解釈されるものかもしれない。 構造体やレコードとクラスとの違いは、構造体やレコードがデータ・プロパティだけを持ち、コード・プロパティを持たないこと。データ・プロパティとは単にプロパティと呼ばれていたりメンバー変数と呼ばれていたりするもの。コード・プロパティとはメソッドと呼ばれていたりメンバー函数と呼ばれていたりするもの。 LibreOffice BasicまたはApache OpenOffice Basicでは、ユーザー定義のデー型(構造体)を次のような2種類の方法で定義することができる。 Type宣言を用いる方法。 UNO(Universal Network Objects)を利用する方法。 Type宣言を用いて構造体を定義 モジュール内のサブルーチンの外にType宣言を記述することによって構造体を定義することができる。 Type宣言はサブルーチンの外側に置く必要があり、Typeというキーワードによって始まり、End Typeというキーワードによって終わる。 次の例では出版物の属性をひとまとまりにしたBooksという構造体を定義している。 REM ***** 構造体を定義 ***** 'VBA拡張 Option Compatible 'Typeを用いた構造体宣言 Type Books BookTitle As String Subtitle As String Author As String Translator As String Publisher As String PublicationDate As D...

HTML5 Canvasで矢印を描いてみた(三角関数を利用)

この投稿ではHTML5 Canvasの2次元コンテキストのAPIを利用して矢印を描くJavaScriptのコードを書いてみた。 ここで描く図は次のようなもの。 このウェブブラウザはHTML5 CanvasかJavaScriptに対応していません。 たったこれだけ。にもかかわらずコードのほうはオブジェクト指向の体裁になるように汎用性を多少持たせてやや大げさに設計してみた。これを更に発展させれば低次元のベクトル空間を描けるものになるかもしれない。 HTMLのCanvas要素 矢印を描くためにHTML5 Canvasの2次元コンテキストのAPIを利用するので、HTML文書のbody要素内にCanvas要素を記述しておく必要があった。それは例えば次のようになる。 <canvas id="arrow" width="250" height="250"> このブラウザはHTML5 CanvasかJavaScritが有効ではありません。 </canvas> Canvasタグのid属性にはこのCanvas要素を一意に特定するための名前を指定する。ここではarrowとした。 widthはキャンバスの幅。heightはキャンバスの高さ。 HTML5 Canvasが有効でないときにはCanvasタグに挟まれた部分の文字列が表示される。 JavaScriptのコード JavaScriptのコードはscriptタグで挟んだscript要素内に記述する。script要素はHTML文章のbody要素の後に置くことが望ましい。少なくともCanvas要素の後である必要がある。 </body> <script> // JavaScriptのコード </script> </html> そうでなければ、例えばCanvas.jsと名付けた別のファイルに保存し、HTML文書内から次のように呼び出すこともできる。 <script type="text/javascript" src="arrow.js"></script> 矢印オブジェクトを返すファクトリ函数 まず矢印オブジェクト...

Lxdeの基本的なショートカットキー(快速鍵)/ホットキー

私は普段使用しているLinux機に軽快なGUIインターフェイスを望んでいるので標準のデスクトップ環境(KDEやXfce等)でなくLxdeをインストールして使っている。さらに入力インターフェイスとしてはキーボードでの操作を好む。なぜだか最近のマウスはチャタリングを起こしやすく故障しやすいので。 キーボードでの操作には、ショートカットキー、またはキーボード・ショートカット、ホットキー、漢字では快速鍵と呼ばれているものがある。そこでそれらの基本的なものを表にしてみた。 働き 快速鍵 Lxpanelメニューを表示 [Alt]+[F1] [Ctrl]+[Esc] Lxpanelメニューを閉じる [Esc] コマンド入力でアプリを起動 [Alt]+[F2] [Windows]+[R] ウィンドウを切り替える [Alt]+[Tab] デスクトップを切り替える [Ctrl]+[Alt]+[←]/[→] デスクトップ1へ [Windows]+[F1] デスクトップ2へ [Windows]+[F2] デスクトップ3へ [Windows]+[F3] ウィンドウを閉じる [Alt]+[F4] ウィンドウを全画面表示 [F11] ウインドウごとデスクトップ移動 [Alt]+[Shift]+[←]/[→] 全てのウィンドウを表示/非表示 [Ctril]+[Alt]+[D] ウィンドウの操作メニューを表示 [Alt]+[Space] ウィンドウの操作メニューを閉じる [Esc] タスクマネージャーを起動 [Ctrl]+[Alt]+[Delete] タスクマネージャーを終了 [Esc] ファイルマネージャーPCManFMを起動 [Windows]+[E] ファイルマネージャーPCManFMを終了 [Ctrl]+[Q] ファイル検索ダイアログを起動 [Windows]+[F] [Space]はスペースキー。 [Windows]はWindowsキーのこと。それは[Alt]の左隣または右隣にある。 ファイル検索のダイアログはファイルマネージャーPCManFMのものなので、それが表示されているデスクトップに表示され...

JavaScriptでオブジェクトを作成する方法

オブジェクト指向言語には大きく分けてクラス・ベースのものとプロトタイプ・ベースのものとがある。JavaScriptはプロトタイプ・ベースのオブジェクト指向としての特徴を備えているとされている。 オブジェクトとは、関連する変数や函数をまとめて名前を付けた参照型の変数のことであり、オブジェクト型変数とも呼ばれている。 JavaScriptでプログラマーが独自にオブジェクトを作るには、 オブジェクト・リテラル、 ファクトリ函数、 Object()コンストラクター、 コンストラクター函数、 クラス構文、 継承 などを用いる方法がある。それぞれについて見ていく。ただし継承についてはこの投稿では触れない。 オブジェクト・リテラル 関連する変数や函数であるプロパティの定義を列挙したオブジェクト・リテラルを変数に代入するとJavaScriptでは簡単にオブジェクトを作ることができる。この方法はオブジェクト・イニシャライザーとも呼ばれている。 ただしこの方法では1つのオブジェクト・リテラルから1つのオブジェクトしか作ることができない。 オブジェクト・リテラルの構文はJSON(JavaScript Object Notation)やPythonの辞書型のそれに似ている。すなわち「{キー:値,キー:値,...}」のようにコーディングし、そのオブジェクト・リテラルを変数に代入するだけでオブジェクトが1つ作られる。オブジェクト・リテラルではこのキーがプロパティ名やメソッド名になる。 オブジェクト・リテラルは次のようにコーディングする。 キーワード 変数名 = { プロパティ名1 : 値, プロパティ名2 : 値, プロパティ名3 : 値 }; キーワードにはletかconstかvarを指定することができる。 プロパティの値に函数式を与えるとそのプロパティはメソッドになる。メソッドは特別な値を持ったプロパティ。メソッドはコード・プロパティとも呼ばれることがある。 キーワード 変数名 = { プロパティ名 : 値, メソッド名 : function(仮引数){} // 函数式 }; 変数に代入されるかプロパティの値に与えられる函数の定義方法は函数式とか函数リテラルと呼ばれている。それに対して独立した函数の定義方法は函数宣言とか...