名称 MIRS1301 平面幾何ライブラリ詳細設計書
番号 MIRS1301-SOFT-0005

最終更新日:2013.02.18

版数 最終更新日 作成 承認 改訂記事
A01 2013.02.18 高原一真 青木先生 初版

目次

  1. はじめに
  2. 要約
  3. プログラム

  1. はじめに

    本ドキュメントは、MIRS1301の平面幾何ライブラリの詳細設計書である。

  2. 要約

    1. 構造体・列挙体

      構造体: Point

      修飾子名称概要
      typedef struct {...}Point 点情報構造体
      メンバ名説明
      double.xx座標
      double.yy座標

      構造体: Line

      修飾子名称概要
      typedef struct {...}Line (有向)直線情報構造体
      メンバ名説明
      Point.origin原点
      double.direction方向 [rad]

      構造体: Axis

      修飾子名称概要
      typedef LineAxis 座標系情報構造体
      メンバ名説明
      Point.origin原点
      double.directionx軸の方向 [rad]

      構造体: Circle

      修飾子名称概要
      typedef struct {...} Circle 円情報構造体
      メンバ名説明
      Point.center中心
      double.radius半径
      int.isCCW半時計回りか? (0 or 1)
    2. 定数

    3. 関数・関数型マクロ

      修飾子・戻値名称・引数概要
      double angleNormalize(double angle) 与えられた角度を -M_PI 〜 M_PI の範囲で表現する
      修飾子・戻値名称・引数概要
      Point pointAt(double x, double y) 点の生成
      Point pointPolarAt(double radius, double angle) 点の生成(極座標)
      int pointExists(Point p) メンバが全て有限値か判定する (0 or 1)
      double pointGetRadius(Point p) 原点からの距離を取得する
      double pointGetAngle(Point p) 偏角を取得する
      Point pointAdd(Point p1, Point p2) ベクトルとして加算する ( p1 + p2 )
      Point pointSub(Point p1, Point p2) ベクトルとして減算する ( p1 - p2 )
      Point pointScale(Point p, double k) ベクトルとしてスカラー倍する ( p * k )
      double pointDot(Point p1, Point p2) ベクトルとして内積を計算する ( p1・p2 )
      Point pointRotate(Point p, double angle) 角度 angle だけ回転させる
      double pointGetDistance(Point p1, Point p2) 2点間の距離を計算する
      double pointGetDistanceToLine(Point p, Line line) 点と直線の距離を計算する
      int pointIsLeftSide(Point p, Line line) 直線の方向を向いたときに、点が直線の左側にあるか判定する (0 or 1)
      int pointIsRightSide(Point p, Line line) 直線の方向を向いたときに、点が直線の右側にあるか判定する (0 or 1)
      Point pointTransform(Axis axis, Point p) ローカル座標系 axis 上における p の座標を求める
      修飾子・戻値名称・引数概要
      Line lineAt(Point start, double direction) 直線の生成
      Line lineThrough(Point start, Point end) 直線の生成
      int lineExists(Line line) メンバが全て有限値か判定する (0 or 1)
      Point lineGetIntersection(Line line1, Line line2) 交点を求める
      Point lineGetClosestPoint(Line line, Point p) 点 p を通り直線 line に垂直な直線が、直線 line と交わる点を求める
      Line lineTransform(Axis axis, Line line) ローカル座標系 axis 上における line の座標を求める
      修飾子・戻値名称・引数概要
      Circle circleAt(Point center, double radius, int isCCW) 円の生成
      int circleExists(Circle circle) メンバがすべて有限値かつ半径が正か判定する (0 or 1)
      Circle circleTransform(Axis axis, Circle circle) ローカル座標系 axis 上における circle の座標を求める

  3. プログラム

    ダウンロード先: MIRS1301 ソフトウェア詳細設計書

▲上へ


MIRS1301 ドキュメント管理台帳へ

沼津工業高等専門学校 電子制御工学科