無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
UKONN

無題

#1

投稿記事 by UKONN » 16年前

c言語というより計算式に関する質問です。
プログラムの作成上回転中心の計算を行う必要があります。
if(fabs(out_r)>fabs(out_l))
{
center_x = robot->x + (robot->radius + 2*robot->radius*out_l/(out_r-out_l))*cos(robot->theta + PAI/2.0);
center_y = robot->y + (robot->radius + 2*robot->radius*out_l/(out_r-out_l))*sin(robot->theta + PAI/2.0);
}

else{
center_x = robot->x + (robot->radius + 2*robot->radius*out_r/(out_l-out_r))*cos(robot->theta - PAI/2.0);
center_y = robot->y + (robot->radius + 2*robot->radius*out_r/(out_l-out_r))*sin(robot->theta - PAI/2.0);
}

この式の解説をお願いしたいです。 
見づらいと思いますがよろしくお願いします。

バグ

Re:無題

#2

投稿記事 by バグ » 16年前

robotというのは構造体?クラス?
out_rとかout_lとか…せめて変数の役割くらいは書いてくださいな。
なんとなく予想はつくけど見当違いの回答をしてもアレなんで…

SCI

Re:無題

#3

投稿記事 by SCI » 16年前

高校数学のある分野の知識が必要です。
具体的には「一次変換」「回転行列」などをキーワードに調べてみてください。

ここで説明してもいいのですが、その場凌ぎの説明では「そのまま」か、逆に「難解」な説明になってしまいそうで(笑

------------------
と思いましたが、よく見たら三角関数をそのまま使っているだけでしたね(笑
各変数の意味もそうですが、「三角関数自体が分からないのか」「それ以外の式の意味が分からないのか」・・・
などを書いてもらえると解答しやすいですね。

UKONN

Re:無題

#4

投稿記事 by UKONN » 16年前

>バグさん
ロボット(robot)と言うのは構造体にあたります。
out_l,out_rはロボットに付属する車輪の右車輪と左車輪における出力値になります。
説明足らずで申し訳ありません。


>SCIさん
三角関数はもちろんわかってるつもりですが・・・。この式で表されてしまうとわかりません。
また、center_xはロボットの中心を表しているのだと思うのですが、それではrobot->xはどの部分を表すのでしょうか?
度々の質問で申し訳ないですが、よろしくおねがいします。

box

Re:無題

#5

投稿記事 by box » 16年前

> ロボット(robot)と言うのは構造体にあたります。

「何のための」構造体ですか?

> それではrobot->xはどの部分を表すのでしょうか?

答えろ、という方が無茶だと思います。
こちらは、その構造体についてほとんどわからないのに。
そう思いませんか?

近くに、その構造体を設計した人がいれば、
その人にたずねるのが最も手っ取り早いです。

UKONN

Re:無題

#6

投稿記事 by UKONN » 16年前

>boxさん
確かにあらゆることが不明確ですね。
設計した人に連絡を図り、聞いてみようとおもいます。

質問に答えていただいた方たちに感謝します。
ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る