無題
Re:無題
メータの針をスピードに対応した角度で表示してあげればいいでしょう。
Cの関数と言うよりもアルゴリズム構築の段階の質問のような気がします。
角度はラジアンで計算するといいんじゃないかな?
まずは最高速(REDZONE)を決めて、そこは角度的には何度に設定するか。
最低速度(0MPH)の時の針の角度も決めておいたほうがいいでしょう。
それで必然的に速度:角度が決まると思います。
重要なのは、いつ、どのように速度が決まるのか。じゃないでしょうか?
アクセルやブレーキ、クラッチに相当するキーがあって、アクセルベタ踏み(押しっぱなし)だと速度が上がるとかだと楽しそうですね。
がんばってください。
Cの関数と言うよりもアルゴリズム構築の段階の質問のような気がします。
角度はラジアンで計算するといいんじゃないかな?
まずは最高速(REDZONE)を決めて、そこは角度的には何度に設定するか。
最低速度(0MPH)の時の針の角度も決めておいたほうがいいでしょう。
それで必然的に速度:角度が決まると思います。
重要なのは、いつ、どのように速度が決まるのか。じゃないでしょうか?
アクセルやブレーキ、クラッチに相当するキーがあって、アクセルベタ踏み(押しっぱなし)だと速度が上がるとかだと楽しそうですね。
がんばってください。
Re:無題
> とやかくいう筋合い無いですが、いつもそのように書かれる傾向があるのでお書きしますが、
> わざと質問者の意図ではない意地悪な受け取り方をした記述をするのは、質問者のみならず、周りの者からも> 見ていて気持ちいい物じゃないので、やめた方がいいのではないかと思いますよ。
そう受け取られたのなら謝ります。
決して意地悪をしているわけではなく、極力言葉通りに理解しようと努めています。
> 今回、「変化する変数に従ってメーターを表示したい」と書いているのですから、どう考えたってハードウェアの話じゃないし、そんな話ここでするわけがないですしね。
スピードメーターは何もアナログで針が動くものばかりではありません。
あまり良い例が見当たらなかったのですが、例えば
http://www.nagaidenshi.co.jp/MONITOR/4010.shtml
であれば、明らかに「表示」しています。
> わざと質問者の意図ではない意地悪な受け取り方をした記述をするのは、質問者のみならず、周りの者からも> 見ていて気持ちいい物じゃないので、やめた方がいいのではないかと思いますよ。
そう受け取られたのなら謝ります。
決して意地悪をしているわけではなく、極力言葉通りに理解しようと努めています。
> 今回、「変化する変数に従ってメーターを表示したい」と書いているのですから、どう考えたってハードウェアの話じゃないし、そんな話ここでするわけがないですしね。
スピードメーターは何もアナログで針が動くものばかりではありません。
あまり良い例が見当たらなかったのですが、例えば
http://www.nagaidenshi.co.jp/MONITOR/4010.shtml
であれば、明らかに「表示」しています。
Re:無題
一点書き忘れました。
> そんな話ここでするわけがないですしね。
先ほどの
http://www.nagaidenshi.co.jp/MONITOR/4010.shtml
のページに掲載されている基本配線図にある「エンジンコンピュータ」のプログラムはC言語で記述することが多いでしょうから、ここで話をしたとしても何の不思議もありません。
> そんな話ここでするわけがないですしね。
先ほどの
http://www.nagaidenshi.co.jp/MONITOR/4010.shtml
のページに掲載されている基本配線図にある「エンジンコンピュータ」のプログラムはC言語で記述することが多いでしょうから、ここで話をしたとしても何の不思議もありません。
Re:無題
スピードメーターと言えば・・。
バイクが好きなんで、バイクの話ですが、
R1といい1000RRといい、最近のスーパースポーツバイクのメーターはほとんどデジタルです。
私はデジタルは好きじゃないんですが・・、そういう人の為に両方装備されてる奴もあります。
http://blog.goo-net.com/ts-prime/img/90/1400gtr-1.jpg
見慣れているので、デジタルのスピードメーターには全く違和感が無いんですが、
やっぱ一般的にはまだまだアナログですよね。
タコメーターまでデジタルの奴はほんと見難いんで、全部アナログでいいと思うんですが・・。
まぁ質問者さんに補足してもらわないとですね。
バイクが好きなんで、バイクの話ですが、
R1といい1000RRといい、最近のスーパースポーツバイクのメーターはほとんどデジタルです。
私はデジタルは好きじゃないんですが・・、そういう人の為に両方装備されてる奴もあります。
http://blog.goo-net.com/ts-prime/img/90/1400gtr-1.jpg
見慣れているので、デジタルのスピードメーターには全く違和感が無いんですが、
やっぱ一般的にはまだまだアナログですよね。
タコメーターまでデジタルの奴はほんと見難いんで、全部アナログでいいと思うんですが・・。
まぁ質問者さんに補足してもらわないとですね。
Re:無題
最近はデジタル多いですよぉ。ネイキッドやアメリカンはアナログが多いと思いますけど。
理由あるんでしょうねぇ・・知りません;
先生も帰ってしまったし・・、帰る前に遊びで作ってみました。
メーターは欧州300km規制が入った隼辺りをイメージして・・。
若干リアリティ出すために余計なことしてるんで、ショウモナイとこ読みにくくなってますが、こんな感じでしょうか?
角度からスピード出してるんで、本来反対なんですけど、まぁイメージとして・・。
理由あるんでしょうねぇ・・知りません;
先生も帰ってしまったし・・、帰る前に遊びで作ってみました。
メーターは欧州300km規制が入った隼辺りをイメージして・・。
若干リアリティ出すために余計なことしてるんで、ショウモナイとこ読みにくくなってますが、こんな感じでしょうか?
角度からスピード出してるんで、本来反対なんですけど、まぁイメージとして・・。
#include "DxLib.h" #include <math.h> #define PI 3.141592 #define MIN_ANGLE (PI/3*2) #define MAX_ANGLE (PI/3*7) #define ADD_SPEED (PI/220) #define SUB_SPEED (PI/180) double angle; char Key[256]; void calc_angle(){ if(Key[KEY_INPUT_Z]!=0){ if(angle<MAX_ANGLE){ angle+=ADD_SPEED-ADD_SPEED*(0.97*(angle-MIN_ANGLE)/(MAX_ANGLE-MIN_ANGLE)); if(angle>=MAX_ANGLE) angle-=ADD_SPEED*3; } } else{ if(angle>MIN_ANGLE){ angle-=SUB_SPEED; if(angle<MIN_ANGLE) angle=MIN_ANGLE; } } } #define BUNKATU 30 void meter_graph(){ int i; double ang=MIN_ANGLE; for(i=0;i<=BUNKATU;i++){ DrawLine(320+210*cos(ang),280+210*sin(ang),320+180*cos(ang),280+180*sin(ang),GetColor(255,0,0)); ang+=(MAX_ANGLE-MIN_ANGLE)/BUNKATU; } } void graph(){ DrawLine(320,280,320+200*cos(angle),280+200*sin(angle),GetColor(255,255,255)); DrawFormatString(300-70,380,GetColor(0,255,255),"%5.1fkm/h",(angle-MIN_ANGLE)*57.6); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ angle=MIN_ANGLE; if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; SetDrawScreen( DX_SCREEN_BACK ); SetFontSize(36); while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && Key[KEY_INPUT_ESCAPE]==0){ calc_angle(); meter_graph(); graph(); ScreenFlip(); } DxLib_End(); return 0; }