分からなくて困ってます…
課題なのですがこれまでC言語に触れたこともほぼないのに出題されて困ってます…
どうしたいのかというと
-------------ここから------
int x1, y1, x2,x3,y3,r=100;
gwinsize(600,400);
ginit(1);
gsetorg(300,100);
x1=-0.5*r; y1=r*(1-sqrt(3)/4.);
x2= 0.5*r; y2=r*(1-sqrt(3)/4.);
x3= 0.5*r; y3=r*(1-sqrt(3)/4.);
gcolor(0,255,0);
gcirc(x1,y1,r);
gcolor(0,0,255);
gcirc(x2,y2,r);
gcolor(255,0,0);
gcirc(x3,y3,r);
-------------------ここまで-------
多分これであってると思うのですが
これで三つの円が描写されると思います
これを加法混色っていうんですかね。重なってるところの色を混ぜるやつです。
あれをやった状態にしなさいということらしいのですが
上記のとおり当方一度もC言語を触ったことがないためわからなくて困ってます。
ちなみにこれを参考にしろということらしいのですが…
-----ここから---
for(iy = y0-r; iy<=(y0+r); iy++) {
for(ix=x0-r;ix<=(x0+r); ix++){
gcolor(50,50,50);
if((ix-x0)*(ix-x0)+(iy-y0)*(iy-y0)-r*r<0) gcolor(255,255,255);
gpnt(ix,iy);
}
----ここまで---
大学の課題で講義ではC言語について触れてなかったのに
こんな課題が出て困ってます…
C言語に明るい方、お願いします。
分からなくて困ってます…
Re: 分からなくて困ってます…
C言語の問題と言うより、数学の問題です。
絵を描いてみて考えて下さい。
参考プログラムのように、ix,iyの座標が3つの円のどの範囲になるかチェックして、その範囲の色をセットして点を打てばよいと思います。
絵を描いてみて考えて下さい。
参考プログラムのように、ix,iyの座標が3つの円のどの範囲になるかチェックして、その範囲の色をセットして点を打てばよいと思います。
non
Re: 分からなくて困ってます…
レスありがとうございます。
なにぶんやったことがないものでどの命令文?が何を表しているのかとかがよくわからないもので…
ix,iyの部分をたぶんx1やy1というように最初のintのところで書いてあるやつに変えればいいということでしょうか?
それとちょっとだけ参考プログラムのところで抜けているところがありました
-----ここから----
int ix,iy,r=100,x0=0,y0=100;
gwinsize(600,400); //画面のサイズを指定
ginit(1);
gsetorg(300,100); //スクリーン内の原点座標を指定
for(iy = y0-r; iy<=(y0+r); iy++) {
for(ix=x0-r;ix<=(x0+r); ix++){
gcolor(50,50,50);
if((ix-x0)*(ix-x0)+(iy-y0)*(iy-y0)-r*r<0) gcolor(255,255,255);
gpnt(ix,iy);
}
}
}
-------------------------ここまで-------------------
こんなのでした。
そのまま実行してみたら灰色の正方形の中に真っ白な円が現れるというようなものだそうです
みたところ
for(iy = y0-r; iy<=(y0+r); iy++) {
for(ix=x0-r;ix<=(x0+r); ix++){
gcolor(50,50,50);
if((ix-x0)*(ix-x0)+(iy-y0)*(iy-y0)-r*r<0) gcolor(255,255,255);
gpnt(ix,iy);
これの for?のところからgcolor(50,50,50)までがたぶん灰色の正方形で
それでもってifがたぶん範囲の条件ということでいいんですよね?
gpntはよくわからないです・・・・
気になる点は
1.No1の記事の上のほうのプログラムのx1=-0.5*r; y1=r*(1-sqrt(3)/4.);とかなってるところは変える必要があるかどうか
このレスの上記の参考プログラムではfor(のところからgcolor(50,50,50);のところで灰色の正方形を多分つくってて
そのあとすぐにIF~で範囲を設定しているけど、このNO1の記事のx1=-0.5*r; y1=r*(1-sqrt(3)/4.);のところを
for(x1=-0.5*r; ) {
for(y1=r*(1-sqrt(3)/4.); ) {
gcolor(0,255,0);とかこんな感じ?にして続けて
if(( ・・・というようにやるのか、
そのまますぐどこかに参考プログラムのやつを変えたものを入れればいいのか…。
2.このレスの上記の参考プログラムのforからgpntのどこからどこまでが必要なのか。forのところからgpntのところまで全部追加する必要があって
その中でixやiyのようなところを変える必要があるということなのか、それともifのところからが必要なのか。
それとgpntとは何でしょうか…それとiy++とかix++も…
分からないことばかりですみません。
初めての試みではありますが頑張ってみようと思うので何卒お願いします
なにぶんやったことがないものでどの命令文?が何を表しているのかとかがよくわからないもので…
ix,iyの部分をたぶんx1やy1というように最初のintのところで書いてあるやつに変えればいいということでしょうか?
それとちょっとだけ参考プログラムのところで抜けているところがありました
-----ここから----
int ix,iy,r=100,x0=0,y0=100;
gwinsize(600,400); //画面のサイズを指定
ginit(1);
gsetorg(300,100); //スクリーン内の原点座標を指定
for(iy = y0-r; iy<=(y0+r); iy++) {
for(ix=x0-r;ix<=(x0+r); ix++){
gcolor(50,50,50);
if((ix-x0)*(ix-x0)+(iy-y0)*(iy-y0)-r*r<0) gcolor(255,255,255);
gpnt(ix,iy);
}
}
}
-------------------------ここまで-------------------
こんなのでした。
そのまま実行してみたら灰色の正方形の中に真っ白な円が現れるというようなものだそうです
みたところ
for(iy = y0-r; iy<=(y0+r); iy++) {
for(ix=x0-r;ix<=(x0+r); ix++){
gcolor(50,50,50);
if((ix-x0)*(ix-x0)+(iy-y0)*(iy-y0)-r*r<0) gcolor(255,255,255);
gpnt(ix,iy);
これの for?のところからgcolor(50,50,50)までがたぶん灰色の正方形で
それでもってifがたぶん範囲の条件ということでいいんですよね?
gpntはよくわからないです・・・・
気になる点は
1.No1の記事の上のほうのプログラムのx1=-0.5*r; y1=r*(1-sqrt(3)/4.);とかなってるところは変える必要があるかどうか
このレスの上記の参考プログラムではfor(のところからgcolor(50,50,50);のところで灰色の正方形を多分つくってて
そのあとすぐにIF~で範囲を設定しているけど、このNO1の記事のx1=-0.5*r; y1=r*(1-sqrt(3)/4.);のところを
for(x1=-0.5*r; ) {
for(y1=r*(1-sqrt(3)/4.); ) {
gcolor(0,255,0);とかこんな感じ?にして続けて
if(( ・・・というようにやるのか、
そのまますぐどこかに参考プログラムのやつを変えたものを入れればいいのか…。
2.このレスの上記の参考プログラムのforからgpntのどこからどこまでが必要なのか。forのところからgpntのところまで全部追加する必要があって
その中でixやiyのようなところを変える必要があるということなのか、それともifのところからが必要なのか。
それとgpntとは何でしょうか…それとiy++とかix++も…
分からないことばかりですみません。
初めての試みではありますが頑張ってみようと思うので何卒お願いします
Re: 分からなくて困ってます…
>なにぶんやったことがないものでどの命令文?が何を表しているのかとかがよくわからないもので…
forとは何なのか? ++とは? あたりの事柄は
「C言語 入門」とかなんとか適当に検索するなりして調べた方が確実かつ早いのではないでしょうか.
(>みたところ…
的な推測だけでどうにかクリアするという取り組み方も有り得るかもしれませんが)
gwinsize, ginit, gsetorg, gcolor, gcirc, gpnt とかいう先頭にgが付いてるシリーズについては
全く想像がつかないのであれば,課題を出した人に尋ねてください.
forとは何なのか? ++とは? あたりの事柄は
「C言語 入門」とかなんとか適当に検索するなりして調べた方が確実かつ早いのではないでしょうか.
(>みたところ…
的な推測だけでどうにかクリアするという取り組み方も有り得るかもしれませんが)
gwinsize, ginit, gsetorg, gcolor, gcirc, gpnt とかいう先頭にgが付いてるシリーズについては
全く想像がつかないのであれば,課題を出した人に尋ねてください.
オフトピック
>灰色の正方形の中に真っ白な円が現れるというようなものだそうです
「ようなものだそうです」とはどういう状況なのでしょう?
実際に実行して結果を確認する手段が存在していないのでしょうか.
「ようなものだそうです」とはどういう状況なのでしょう?
実際に実行して結果を確認する手段が存在していないのでしょうか.
Re: 分からなくて困ってます…
これで三つの円が描画される環境を私は知りません。とっぴー さんが書きました: -------------ここから------
int x1, y1, x2,x3,y3,r=100;
gwinsize(600,400);
ginit(1);
gsetorg(300,100);
x1=-0.5*r; y1=r*(1-sqrt(3)/4.);
x2= 0.5*r; y2=r*(1-sqrt(3)/4.);
x3= 0.5*r; y3=r*(1-sqrt(3)/4.);
gcolor(0,255,0);
gcirc(x1,y1,r);
gcolor(0,0,255);
gcirc(x2,y2,r);
gcolor(255,0,0);
gcirc(x3,y3,r);
-------------------ここまで-------
多分これであってると思うのですが
これで三つの円が描写されると思います
nonさんのいう通り、その範囲の色をセットして点を打てばよいと思います。とっぴー さんが書きました:ちなみにこれを参考にしろということらしいのですが…
-----ここから---
for(iy = y0-r; iy<=(y0+r); iy++) {
for(ix=x0-r;ix<=(x0+r); ix++){
gcolor(50,50,50);
if((ix-x0)*(ix-x0)+(iy-y0)*(iy-y0)-r*r<0) gcolor(255,255,255);
gpnt(ix,iy);
}
----ここまで---
実際にやってみました。警告等は無視しています。
► スポイラーを表示
百聞は~