お世話になります。以前にこちらで時間軸と座標の関係について質問させて頂きまし
た。
画面系のアプリでフォーム上に(例)10:00 10:15 10:30 10:45 11:00・・・のように15分
単位で時間の縦軸が描画されています。
今回、計算で求めたいものは、11:04等の時間からそこの時間位置のX座標(ドット)を取
得するような関数を作成しようと思います。(IN PUTが時間でOUT PUTが時間軸のX座標)
計算をするにあたって揃っているネタは、フォーム左端の先頭時間、先頭時間のX座標
(37ドット固定)、15分ごとに刻まれている時間軸の幅(40ドット固定)、1分辺りの時間軸
の幅(40÷15)です。
上記のネタで入力時間(時、分)から入力時間位置のX座標を取得出来るような計算式を考
えていますがなかなか良い考えが思い浮かびません。みなさんのお力を貸していただけ
ればと思います。宜しくお願いいたします。
言語はVC++です。
算数の質問なら、なにもここじゃなくても。
単なる四則演算の話だな。
動作確認していないので間違えているかも。
int left_x = 37; // 先頭時間のX座標
int left_time = 11*60+04; // フォーム左端の先頭時間を分
int TimeToX(int hour, int minutes)
{
int time = hour * 60 + minutes;
int d = (time - left_time) * 40 / 15;
int x = left_x + d;
return x;
}
先頭時間のX座標より小さかったり
オーバーフローしたり
端数は四捨五入にしたいとかは考慮していない。
他の方が言われていますけれど、単なる四則演算の問題なので
画面上の配置とかがわかっていれば、さほど難問とは思えません。
で、自分も考えているんだけどもっと良い方法があるかもと言う話なら
御自分が考えた方法を提示するべきではと言う気がします。
今の質問内容だと単純に答えを教えてくれと言っているのと変わらないと思います。
ただ、この辺の基礎的な算数の問題に関しては自力で解けないと
後々苦労すると思うので自信が無いならちゃんと勉強された方が良いと思います。
余談ですが、
どうやって勉強するんだと言われると困りますけれどね。
まあ、算数の問題集でも買ってきて解いてみるくらいしか思いつきません。
論理的に組み立てる事ができれば、何とかなると思うのですけれど。
お返事遅くなりました・・・。
wclrp ( 'o')さん
親切に教えてくださりありがとうございました。結構、難しく考えてしまっていました
がすっきりと上手くまとめることが出来るのですね!勉強になりました。
PATIOさん
ご指摘ありがとうございます。確かにプログラムではなく数学的な考え方の問題ですの
でもっと数学力と論理力を身に付けられるように努力したいと思います。以前にこちら
の掲示板で勧められた統計学のベーシックの本に詳しく載っているようですので読んで
みたいと思います。