- ベストアンサー
c
gnuをc言語に通して時計を作る という課題をやっています ビルドした結果、a、b、theta、のローカル変数は一度も使われておりませんと出てきてしまい、時計の針が出てきません fprintf(gp, "set a=%lf, a"); fprintf(gp, "set b=%lf, b"); fprintf(gp, "set theta=%lf, theta"); と設定したつもりですがどこがどう間違えてるかわかりません お願いします。下にソースファイルのプログラムを載せときました #include "stdafx.h" //この文は通常、不要。単純アプリやHello worldを選ぶと必要。 #include <stdio.h> // はずしても通る #include <stdlib.h> #include <math.h> //数学関数の呼び出しに使用する。 #define GNUPLOT_PATH "C:/FUJITA/gnuplot/bin/pgnuplot" int main(int argc, char* argv[]) { double a,b,theta,k; FILE *gp; gp = _popen(GNUPLOT_PATH, "w"); if(gp == NULL){ fprintf(stderr, "Oops, I can't find %s.", GNUPLOT_PATH); exit(EXIT_FAILURE); } fprintf(gp, "reset\n"); fprintf(gp, "set title Clock \n"); fprintf(gp, "set size square \n"); fprintf(gp, "set key off\n"); fprintf(gp, "unset border \n"); fprintf(gp, "unset xtics \n"); fprintf(gp, "unset ytics \n"); fprintf(gp, "set grid \n"); fprintf(gp, "set parametric \n"); fprintf(gp, "set xrange [-1:1] \n"); fprintf(gp, "set yrange [-1:1.2] \n"); fprintf(gp, "set pi=%lf, pi \n"); fprintf(gp, "set a=%lf, a"); fprintf(gp, "set b=%lf, b"); fprintf(gp, "set theta=%lf, theta"); fprintf(gp, "set grid \n"); for (k=0; k<10; k++){ fprintf(gp,"theta=k \n"); fprintf(gp,"set a=0.5*pi-(theta*pi)/180.0 \n"); fprintf(gp,"set b=0.5*pi-(theta*pi)/(180.0*12.0)"); fprintf(gp,"set arrow 1 from 0.0,0.0 to 0.4*cos(b),0.4*sin(b) front size 0.1,30 lt 5 lw 5 \n"); fprintf(gp,"set arrow 2 from 0.0,0.0 to 0.8*cos(a),0.8*sin(a) front size 0.1,15 lt 5 lw 3 \n"); } fprintf(gp," set arrow 1 from 0.0,0.0 to 0.4*cos(b),0.4*sin(b) front size 0.1,30 lt 5 lw 5\n""0.4*cos(b),0.4*sin(b) \n"); fprintf(gp," set arrow 2 from 0.0,0.0 to 0.8*cos(b),0.8*sin(b) front size 0.1,15 lt 5 lw 3\n","0.8*cos(a),0.8*sin(a) \n"); fprintf(gp,"plot sin(t),cos(t)\n"); fprintf(gp,"pause 100 \n"); return (0); }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
C言語でプログラムを書く前に、gnuplotに直接描画コマンドを入力して時計を描画することはできているのでしょうか? 今の命令列だと、set title Clock の部分で既に下記のようなエラーが出るはずです。gnuplotに与える命令列を完全なものにしてから、それをどのようにC言語で生成するかを考えたほうがいいと思います。 gnuplot> reset gnuplot> set title Clock undefined variable Clock あと、gnuplotのことをgnuと勝手に略すのはやめて欲しいです。コンピュータ関連の世界では、GNUというのは普通全く別のものを指すので。
その他の回答 (1)
- edomin7777
- ベストアンサー率40% (711/1750)
fprintf(gp, "set a=%lf, a"); fprintf(gp, "set b=%lf, b"); fprintf(gp, "set theta=%lf, theta"); 変数(引数)を「"」の中に入れてどうしたいの? fprintf(gp, "set a=%lf", a); fprintf(gp, "set b=%lf", b); fprintf(gp, "set theta=%lf", theta); でしょ? (他は、全く見ていないです。)
お礼
ありがとうございます
お礼
ありがとうございます