2008年 4月 1日 掲載
このページはもとが KDO の個人的なメモであり, 内容の正しさは保証できません.
使ってみておかしいと感じたら, ただちに使用を中止して, 自分で調べなおすなり, 計算しなおすなりしてください.
経緯度 (λ, φ) を (x, y) に投影する式は,
ここで,a は適当な係数.
水深の浅い沿岸モデルでの海底摩擦による減速は,


で表される.ここで,
もとは Osen だったか?
半径 1 の球に内接する正二十面体の頂点の座標を計算してみたので掲載しておく.




地図を正二十面体に投影して地球儀を作ろうと思ったのだが, これ以上の計算がめんどうになってやめてしまった.
寮に住んでいるのだが,暑くてたまらない. で,不快指数なんかを計算してみた.
DI = 0.81T + 0.01U (0.99T - 14.3) + 46.3
式は理科年表から.
今朝の寮の不快指数は,T=30度C,U=70% より, DI=81.4 であった.
方位 dir,流速 mag と 東方成分 u,北方成分 v とを 互いに変換するミニプログラムを作った.
dir の単位は「度」で,範囲は 0〜360度.

dir, mag → u, v(ソース dm2uv.c)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI (atan(1)*4)
int main(int argc, char **argv)
{
double dir, mag, u, v; /* dir: degree */
dir = atof(argv[1]);
mag = atof(argv[2]);
u = mag * cos((90 - dir) * PI / 180);
v = mag * sin((90 - dir) * PI / 180);
printf("%f %f\n", u, v);
return 0;
}
u, v → dir, mag(ソース uv2dm.c)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI (atan(1)*4)
int main(int argc, char **argv)
{
double u, v, dir, mag; /* dir: degree */
u = atof(argv[1]);
v = atof(argv[2]);
mag = sqrt(u * u + v * v);
dir = 90 - atan2(v, u) * 180 / PI;
if(dir < 0) dir += 360;
printf("%f %f\n", dir, mag);
return 0;
}
[ KDO's Note Index にもどる ] [ KDOホームにもどる ]
(C) 2008 KDO