make_cylinder_dataコマンド マニュアル

(The documentation of make_cylinder_data command)

Last Update: 2023/10/24


◆機能・用途(Purpose)

円筒の立体模型の2次元平面への投影を表すテキストデータ (グラフのプロット用)を作成する。
Create a text data that represents the coordinates of a 2-D projection of a 3-D cylinder for plotting a graph.

このプログラムでは図1のように、 長径\(a\)(水平方向)、短径\(b\)(鉛直方向)の楕円を 鉛直方向に長さ\(L\)だけ隔てて2つ配置し、 それらを直線で結ぶことで半径\(a\)、長さ\(L\)の円筒を表現する。
This program expresses a cylinder of radius \(a\) and length \(L\) by connecting two ellipsoids by straight lines, where the ellipsoids have the longer radius \(a\) (horizontal) and shorter radius \(b\) (vertical) and are vertically displaced by a distance \(L\) (Fig. 1).

プログラムでは元々の円筒ではなく 投影した2次元図形に関するパラメータを専ら指定する。 以下で\(x\)軸は投影面上の水平方向の位置、 \(y\)軸は投影面上の鉛直方向の位置を表す。
All parameters of this program refer to the geometry of not the 3-D cylinder but the 2-D object on the projection plane. In the following, \(x\)- and \(y\)-coordinates are taken horizontal and vertical on the 2-D projection plane, respectively.



図1. 作成する円筒図形のデータとパラメータ。 全てのパラメータは3次元の円筒オブジェクトではなく 2次元平面に投影した模式図におけるパラメータとして 定義されることに留意する。
Fig. 1. The data and parameters for the figure of a cylinder to create. Note that all parameters do not refer to a 3-D cylinder object but does refer to a 2-D schematic image object on the projected plane.


◆ソースコード(Source code)

$YMAEDA_OPENTOOL_DIR/general/src/make_cylinder_data.c


◆使用方法(Usage)

コマンドライン引数でパラメータを指定する。 パラメータの一覧を下表に示す。
Specify parameters by command-line arguments. The table below shows a list of parameters.


●「-」から始まらない引数 (Arguments not beginning with “-”)

このコマンドでは「-」から始まらない引数は存在しない。
This command does not have arguments not beginning with “-”.


●1つの「-」から始まる引数 (Arguments beginning with a single “-”)

このコマンドでは1つの「-」から始まる引数は存在しない。
This command does not have arguments beginning with a single “-”.


●「--パラメータ名=パラメータ値」の形式の引数 (Arguments of a form “--Parameter name=Parameter Value”)

「--パラメータ名=パラメータ値」の形式の引数は自由な順番で指定できる。 「-」から始まらない引数の間に挿入しても良い。 相反する指定がなされた場合には後の指定が優先される。 デフォルト値を持つパラメータは省略できる。
Arguments of a form “--Parameter name=Parameter Value” can be placed in an arbitrary order. They can even be inserted between arguments not beginning with “-”. In case of conflicting options being specified, the latter option has a higher priority. Parameters that have default values can be omitted.

パラメータ名
Parameter name
意味
Meaning
可能なパラメータ値
Allowed parameter values
デフォルト値
Default value
center_x 円筒の中心軸の\(x\)座標\(x_c\)。
The \(x\)-coordinate of the central axis of the cylinder \(x_c\).
実数。
A real number.
0.0
longer_radius 円筒の上面・下面を表す楕円の長軸半径\(a\)(図1)。
The longer radius \(a\) of the ellipsoids that represent the roof and bottom surfaces of the cylinder (Fig. 1).
正の実数。
A positive real number.
1.0
shorter_radius 円筒の上面・下面を表す楕円の短軸半径\(b\)(図1)。
The shorter radius \(b\) of the ellipsoids that represent the roof and bottom surfaces of the cylinder (Fig. 1).
\(a\)よりも小さな正の実数。
A positive real number less than \(a\).
\(a/2\)
angle_interval 描画する楕円上の点の角度刻み\(\Delta\theta\)(°)。
The angle interval \(\Delta\theta\) (°) of the points to draw the ellipsoid.
180.0の整数(\(\geq 2\))分の1となる正の実数。
A positive real number that is an integer (\(\geq 2\)) divisor of 180.0.
1.0
bottom_y 円筒の下面を表す楕円(図1)の中心点の\(y\)座標\(y_b\)。
The \(y\)-coordinate of the center of the ellipsoid \(y_b\) that represents the bottom surface of the cylinder (Fig. 1).
実数。
A real number.
0.0
length 円筒の長さ\(L\)。
The length \(L\) of the cylinder.
\(2b\)よりも大きな正の実数。
A positive real number greater than \(2b\).
\(10b\)


◆動作(Behaviour)

以下の座標を標準出力に表示する。 1-5の各オブジェクトの区切りには「>」とだけ書かれた行を1行入れる。 これにより、Generic Mapping Tools (GMT)を用いて 出力データを容易にプロットできる。
Display the following coordinates into the standard output. A line composed of “>” is inserted to separate the objects that belong to 1-5. By this, the output data is easily plottable by Generic Mapping Tools (GMT).

  1. 円筒上面を表す楕円の座標。 \(x=x_c+a\cos(n\Delta\theta)\), \(y=y_b+L+b\sin(n\Delta\theta)\) と表される座標を\(n=0,1,2,\cdots,2N\)について求め、 第1列を\(x\)、第2列を\(y\)としてタブ区切りで出力する。 ここで\(N\)は\(N\Delta\theta=180\)°となる整数である。 座標の種類を表す「#top」を行末に付ける。
    The coordinates of an ellipsoid that represents the roof surface of the cylinder. The coordinates are \(x=x_c+a\cos(n\Delta\theta)\) and \(y=y_b+L+b\sin(n\Delta\theta)\) with \(n=0,1,2,\cdots,2N\), where \(N\) is an integer for which \(N\Delta\theta\) equals 180°. The \(x\)- and \(y\)-values are written into the 1st and 2nd columns in each line separated by a tab, followed by “#top” to indicate the coordinate group.

  2. 円筒下面のうち、奥側の半分を表す半楕円の座標。 \(x=x_c+a\cos(n\Delta\theta)\), \(y=y_b+b\sin(n\Delta\theta)\) と表される座標を\(n=0,1,2,\cdots,N\)について求め、 第1列を\(x\)、第2列を\(y\)としてタブ区切りで出力する。 座標の種類を表す「#bottom_far」を行末に付ける。
    The coordinates of a half ellipsoid that represents the farther half of the bottom surface of the cylinder. The coordinates are \(x=x_c+a\cos(n\Delta\theta)\) and \(y=y_b+b\sin(n\Delta\theta)\) with \(n=0,1,2,\cdots,N\). The \(x\)- and \(y\)-values are written into the 1st and 2nd columns in each line separated by a tab, followed by “#bottom_far” to indicate the coordinate group.

  3. 円筒下面のうち、手前側の半分を表す半楕円の座標。 \(x=x_c+a\cos(n\Delta\theta)\), \(y=y_b+b\sin(n\Delta\theta)\) と表される座標を\(n=N,N+1,N+2,\cdots,2N\)について求め、 第1列を\(x\)、第2列を\(y\)としてタブ区切りで出力する。 座標の種類を表す「#bottom_near」を行末に付ける。
    The coordinates of a half ellipsoid that represents the nearer half of the bottom surface of the cylinder. The coordinates are \(x=x_c+a\cos(n\Delta\theta)\) and \(y=y_b+b\sin(n\Delta\theta)\) with \(n=N,N+1,N+2,\cdots,2N\). The \(x\)- and \(y\)-values are written into the 1st and 2nd columns in each line separated by a tab, followed by “#bottom_near” to indicate the coordinate group.

  4. 円筒の右側面の座標。 \((x_c+a,y_b)\)および\((x_c+a,y_b+L)\)であり、 第1列を\(x\)、第2列を\(y\)としてタブ区切りで出力する。 座標の種類を表す「#right」を行末に付ける。
    The coordinates of the right side of the cylinder. The coordinates are \((x_c+a,y_b)\) and \((x_c+a,y_b+L)\). The \(x\)- and \(y\)-values are written into the 1st and 2nd columns in each line separated by a tab, followed by “#right” to indicate the coordinate group.

  5. 円筒の左側面の座標。 \((x_c-a,y_b)\)および\((x_c-a,y_b+L)\)であり、 第1列を\(x\)、第2列を\(y\)としてタブ区切りで出力する。 座標の種類を表す「#left」を行末に付ける。
    The coordinates of the left side of the cylinder. The coordinates are \((x_c-a,y_b)\) and \((x_c-a,y_b+L)\). The \(x\)- and \(y\)-values are written into the 1st and 2nd columns in each line separated by a tab, followed by “#left” to indicate the coordinate group.


◆使用例(Example)

make_cylinder_data --a=2.0 --L=12.0 --bottom_y=-12.0 | gmt plot -R-3/3/-14/2 -JX6/16 -Xa2 -Ya2 -W1,0/0/0