
こんにちは!
先週C言語のプログラミングの課題が出て土日もずっと考えたのですが全く意味が分かりません><
どなたか教えてください泣
内容は、スキャンライン法で二次元三角形を作り(三角形の塗りつぶし)、BMPファイルへ出力せよというものです。
1. 3角形を囲む長方形・ (xmin,xmax,ymin,ymax)
2. Y座標をymax~yminまで, 1ずつ減らしながら以下を繰り返す
(a)スキャンラインSL(Y=y)発生
(b)SLと3角形との交点(線形補間)
(c)交点間の画素を 表示色(r,g,b)で塗る
*端点や水平線に注意
よろしくお願いします><
No.3ベストアンサー
- 回答日時:
>スキャンラインY=yが何を意味するのか分からないし
スキャンラインSLのY座標をyとする、ということです。
スキャンラインSLは、水平な直線です。
そのY座標をyとした時に、SLと三角形の辺との交点を求めます。
交点が2つ有る場合、交点の座標は(x1,y)と(x2,y)になるので
2つの交点の間を塗りつぶす(=2つの交点の間に線を引く)
この処理を、Y座標をyminからymaxまで変えながら行う。
No.2
- 回答日時:
海苔巻きを作るときに使用する「すだれ」を竹の棒が横になるようにぶら下げて水彩絵の具ですだれに絵を描いてみてください。
竹の棒の一本一本がスキャンラインです。筆を左右上下に動かして、すだれ全体に絵を描くのではなく、竹の棒を一本一本塗る感じで絵を書く感じです。
線形補間というのは比例を使用した補間です。早い話が、すだれの左下を原点として竹の棒の向きをx軸として考えてすだれの上に三角形を書くと、三角形の各辺はy=ax+bの形に表すことができます。頂点を除いて、それぞれの竹の棒は三角形の2つの辺と交差すると思いますから、2つの辺の交点を求めて、竹の棒のその間を塗っていけばいいでしょう?
No.1
- 回答日時:
わからない箇所はどこでしょう?
方眼紙を用意してください。
そこに三角形を書いてください。
その三角形が収まるマスが「1」
ある横方向に並んだマス目に注目して、三角形の辺があるマスに色を塗るのが 「2」
二つの頂点を通る直線と、Y=yの交点を求めるのは、算数か数学でやったはず。
むずかしいのはBMPファイルの出力で、C言語の標準では、そのものずばりのものはありません。
この回答への補足
見ていただいてありがとうございます!
最初に以下のソースファイルとヘッダファイル1つとwriteBmp.cというファイルが渡されたのでBMPファイルが出力できるのだと思います。
課題はこのソースファイルに付け足すというものです!
スキャンラインY=yが何を意味するのか分からないし、線形補間が何かを調べたんですが理解ができなくて困っています><
/*
24ビットBMPファイルの書き込み
*/
#include "cg.h"
#include "writeBmp.c"
/* ビットマップデータの生成 */
void mbitmap(int width, int height)
{
int i, j;
for (i=0; i<height; i++)
for (j=0; j<width; j++) {
Pixel[i][j][0] = (unsigned char)255;
Pixel[i][j][1] = (unsigned char)255;
Pixel[i][j][2] = (unsigned char)0;
}
}
void main(void)
{
int width = 640,
height = 480;
/* ビットマップデータの生成 */
mbitmap(width, height);
/* 24ビット-ビットマップファイルへの書き込み */
bmpout("sample.bmp", width, height);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
C言語 配列で座標
-
始点、終点の二つの座標と半径...
-
3次元空間上の2つの座標から...
-
Excel関数で指定範囲内に有るか...
-
ビットマップ画像の座標を小数...
-
マークシート読取ソフトの仕組...
-
マインクラフト(pc版)で座標...
-
3次元座標上の2直線の交点判...
-
選択範囲の座標値の抽出
-
エクセルで回転する座標の出し方
-
Fortranの導入について質問
-
エクセルである点からの距離で...
-
「アイテムは収集されました」...
-
エクセルで作った新しいウイン...
-
コントロールの書式設定で、“コ...
-
皆さん、おはようございます♪ ...
-
【VB2008】 マウス操作の一時的...
-
[VB.net] DataGridViewの列ヘッ...
-
エクセルのコントロールツール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
始点、終点の二つの座標と半径...
-
3次元空間上の2つの座標から...
-
エクセルで回転する座標の出し方
-
C言語 配列で座標
-
エクセルである点からの距離で...
-
シーケンサー(PLC?)で制...
-
多角形の内部かどうか判定する方法
-
Excel VBA で自在に図形を変化...
-
最小二乗平面
-
回転する矩形同士の当たり判定...
-
VBで、開いているExcelシートの...
-
ワード上Shapeの位置情報を統一...
-
図形が重なりあっているかどうか
-
C言語で制作するピラミッドアー...
-
ガウシアンフィルタのCプログラム
-
Excel関数で指定範囲内に有るか...
-
3次元座標上の2直線の交点判...
-
ダイアログ内コントロールの位...
おすすめ情報