2023年2月6日月曜日

近軸光線追跡

あまりに久しぶりだが,日記程度になにかかいておいたほうがよいかと思って,昨年,前期高齢者になってしまったし

それと,仕事も異動してて,前の記事がどこに勤めていた時だったか

近軸光線追跡



入射角に入射側の屈折率を掛けた形を考えると
\[n_{0} i_{1} =y_{1}\frac{n_{0}}{r_{1}} -n_{0} u_{0}\]
出射がわの傾角をまとめると \begin{array}{l} n_{1} u_{1} =y_{1}\frac{n_{1}}{r_{1}} -n_{1} i_{1} '\\ =y_{1}\frac{n_{1}}{r_{1}} -n_{0} i_{1}\\ =y_{1}\frac{n_{1}}{r_{1}} -\left( y_{1}\frac{n_{0}}{r_{1}} -n_{0} u_{0}\right)\\ =n_{0} u_{0} +y_{1}\frac{n_{1}}{r_{1}} -y_{1}\frac{n_{0}}{r_{1}}\\ \therefore n_{1} u_{1} =n_{0} u_{0} +y_{1}\frac{n_{1} -n_{0}}{r_{1}} \end{array}
最初のところでスネルの法則つかた.

で,最後の形をみると,光線の傾角(屈折率がかかっているが)の変化量が,光線の高さと屈折率差を曲率半径で割ったものをかけた量になっていることが分かる.
眼鏡の光学でよく使われるバージェンスなるものは,高さが1とすれば,この式から簡単に導かれる(というか同じ)
また,さきほどの光線傾角の変化量が屈折力,と呼ばれている量になる.
ちなみに,屈折力は焦点距離の逆数になるが,先の式で分数のところをこれで置き換えれば薄肉レンズでも同様な計算でOK(つまり複雑なレンズでも主点と焦点距離でこの関係が使える)

2019年8月15日木曜日

Corvidを使ったweb アプリ(?)の作り方


  1. サイトのタイプをOTHERですすめて,Wix Editorを使ってつくるほうを選ぶ
  2. 適当なテーマを選ぶ
  3. Dev ModeでCorvidをonにする

2019年2月11日月曜日

Rstudioでマルチバイト文字を含むcsvファイルを読み込む

Version 1.1.456   Windows 10 pro/64 bit OS/Core i5/16 Gb RAM
かなり手間取ったので
(以前はこんなことなかったと思うのだけど)

やりたいこと

Excel365で集計したデータをcsvに吐き出して,Rに読み込ませたい.
(いまどきExcelファイルを直接読み込ませる?)

トラブった概要

MyData <- read.csv(file="data.csv", fileEncoding = "UTF-8", header=TRUE, sep=",")
Warning messages:
1: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  invalid input found on input connection 'data.csv'
2: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  incomplete final line found by readTableHeader on 'data.csv'

ちなみに,excel fileを含めFile -> Import Datasetでもやってみた(この次点ではできない) filename too longみたいなエラーメッセージをいただいた

解決策


readrというpackageのread_csvを使えばよいらしい
  1. install.packages("readr")
    (dependencyをupdateしなくちゃいけないから再起動する,って言われた)
  2. library(readr)
  3. read_csv(file="data.csv")
File -> Import Datasetでも,read_csvを使って読み込むようになった(なぜ?→readrパッケージが必要だから)


2018年7月8日日曜日

Visual Studio 2017環境でPsychoPyを使った実験プログラムの開発

昨日はSpiderを使えるようにしたが,デバッガーは,まあたいしたことはない.といっても,とても便利だが,普段Visual Studio(VS)で開発しているので贅沢になっている.
最近のMSはOpen Sourceとの整合性もとって,Pythonの開発環境も整備されているので,PsychoPyの開発もこれでできないか,と試してみた.

ちなみに,責任逃れのために書くが,Pythonを含め,プログラム開発はど素人なので,プロからみればあほなことをやっていると思う.間違いもあったり,VSの他の開発に悪影響を及ぼしたり,何が起こっても責任はもたないので,もし同じことをするときは自己責任で

Visual Studio Community edition 2017 

  1. 使ったのはこれ
    新しめのでないとPythonに対応してない,かも
    まあ,Eclipseのほうがいい,とか,NetBeans(Pythonサポートしてるかもしらない)がいいとか,あるでしょうけど.VS codeとかも
  2. で,VSでは,InstallerでPython開発する,って設定して,それ用のものをインストールしておく.

Python環境の設定

  1. ツールメニュー → Python → Python環境
  2. 右のほうに(たぶん)Python環境のペインが出るので,そこで+カスタム
  3. 説明やらインタプリタ―やらを入れて適応を押す(説明入れないと押せません.これ,説明でなくて,識別用のタイトルだから)
    あ,もちろん,PsychoPyのPython.exeやらを設定する.いまのバージョンは3.6 32 bitらしい.(Power ShellやコマンドウィンドでPythonを実行して確認すればいい)
  4. ちなみに,defaultだと
    C:\Program Files (x86)\PsychoPy2_PY3

普通にプロジェクトを作る

  1. もちろん,Pythonを選んで作る.
  2. いろいろなoptionを選べる.私はCoderでちょっと作ったあったsourceがあったので,既存でソースから,みたいなのを選んだけど,適当なのを選べばよいと思う
  3. 既存のソースコードをディレクトリに,そのディレクトリ名のプロジェクトファイルが出来る

ソルーションエクスプローラでやること

  1. ソルーションエクスプローラには,さっきPython環境を設定したペインの下のところにタブが出てるので,そこで選べば,見えて,設定できる
    (って普通にVSのソルーションをいじるだけ)
  2. まず,Python環境を,さっき,カスタムで作ったPsychoPy用のPythonにする(あるいは,なっていることを確認)
  3. 次に,ソルーションを右クリックして,出て来たメニューの一番下のoptionを選ぶ.
    そうすると,intelisenceでソースコードを探すディレクトリが指定できるので,PsychoPy pythonのディレクトリのScriptsやLib\site-packagesを追加する
    (ここは,なにやっているか,私は良く分かってない)
あとは,普通にC++やC#開発と同様に,実行,デバッグ,変数上にポインタを置けば,いろいろな情報が見えるし,site-packageの中で何が起こっているかも,step-inしていけば,見ることができる.

ちなみに

  1. 昨日のSpyderインストールのなごりで,PsychoPyのpython環境にPathが通ってる.関係あるかは知らない
  2. VSの開発環境でいい人は,無理にpipをactiveにしなくてもいいってこと,だと思う
  3. まだ,インストールしただけなので,この後,使えない,とか,だめだとか,文句がたらたら出る可能性はある
    (自分が忘れないうちにブログ書いた)



2018年7月7日土曜日

windows 上のpythonにpipをインストール

psychopyを使い始めた.
しかし
  1. Coderにデバッグの環境がないので,それを整備したい
  2. Psychopyでは,パッケージを追加インストールするpipが実行できない.
  3. で,pipを使えるようにしてSpyderをインストールしよう
ということで
十河先生の「心理実験プログラミング」はとても参考になって,この場合も本の最後の方にいろいろと説明がある.
が,pipのインストールで,説明通りのインストール方法だと私の環境ではネットワークの問題(らしい)でうまくいかなかった.そこで,対応方法を忘備録として書いておく
(注1)Pythonは不慣れで,間違い,無駄だらけの可能性あり.ついでにPythonに関してもど素人.
というわけで,せっかく心理物理の実験がうまくいってたのに,これをみて,何かしてPsychopyが動かない,ってなっても責任はもてません

環境変数

windowsの環境変数を設定する.Psychopyのディレクトリ,その下のScripts, 一部DDLsにもと書いていた人がいたので,これも追加

ちなみに
PsychopyはPython 3系
インストールディレクトリーはインストーラーの指定通り
C:\Program Files (x86)\PsychoPy2_PY3


setuptoolsというのをダウンロードして解凍.pyやフォールダーをScriptsにコピー

whlでインストール

pip-10.0.1-py2.py3-none-any.whlをダウンロードし,私はPschopyのディレクトリに置いた次のコマンドをPS(パワーシェル)の管理者モードで実行
PS C:\Program Files (x86)\PsychoPy2_PY3> python.exe -m pip install --no-index pip-10.0.1-py2.py3-none-any.whl

うまくいけば
PS C:\Program Files (x86)\PsychoPy2_PY3> python  -m pip -V
pip 10.0.1 from C:\Program Files (x86)\PsychoPy2_PY3\lib\site-packages\pip (python 3.6)

のように確認できる

Spyderのインストール

とりあえず,PSで
python -m pip install spyder

そのままPSでspyder3とすれば,spyderが使える.

でspyderがインストールできたっぽい.(ところで,忘れないように書いてみた)

おまけ
こんなことをすると,いまインストールされているパッケージが分かって,気持ちがいい
anacondaにこれを入れまくればpsychopyが動かせる?
python -m pip freeze




2017年4月30日日曜日

ISOのZernike多項式の順番

眼の収差解析するとき,すぐわすれてしまうので
(放置状態だったので,絵だけ貼っておこう)
もはやISOで会っているのさへ不明



正常眼で,左右眼の非対称から,どちらかの眼にそろえるのだが,ISOは右眼だったか?