本文目錄一覽:
- 1、c語言小數點和填充空格字符?
- 2、C語言 給一個圓形填充顏色
- 3、C語言填充程序
- 4、C語言數組填充
- 5、C語言實現多邊形填充
- 6、C語言畫圖畫出圖形後如何填充顏色?
c語言小數點和填充空格字符?
這個很容易實現,可以根據輸入的寬度和小數位數來構造printf的格式串,代碼如下:
#include “stdio.h”
int main()
{
float x; // 輸入數字
int a; // 寬度
int b; // 小數點位數
char fmt[10]; // 輸出格式字符串
printf(“輸入數字:”);
scanf(“%f”, x);
printf(“輸入填充空間:”);
scanf(“%d”, a);
printf(“輸入小數點位數:”);
scanf(“%d”, b);
sprintf(fmt, “%s%d%s%d%s”, “%”, a, “.”, b, “f”); // 拼接輸出格式字符串為 “%a.bf” 樣式
printf(fmt, x); // 按 “%a.bf” 樣式輸出 x
return 0;
}
註:a輸入0時相當於輸出格式為 “%.bf”,vs2019下測試通過
C語言 給一個圓形填充顏色
第一floodfill第三個顏色參數一定要和被填充圖畫時的顏色一樣.
第二,X,Y 一定要在被填充的圖形內,邊界上也是不行的,那樣填充的是圖形外的部分,如你上題,因是圓形,可改為
setcolor(1);
circle(200,200,100);
floodfill(200,200,1);
但如是長方形或正方形就一定要在邊界之內,就是多一個像素都行
C語言填充程序
#includestdio.h
void main()
{
int m,n,k;
while(scanf(“%d%d”,m,n),m0||n0)
{};
for(k = m;n%k!=0||m%k!=0;k–);
{};
printf(“%d\n”,k);
}
}
k =m或=n應該沒差別
m*n0 ?2個都是負的怎麼辦
while(scanf(“%d%d”,m,n),m0||n0)判斷的是最後一個表達式的值,要2個數都大於0,都大於0就會進入循環,反寫,都大於0才會跳出
C語言數組填充
#include stdio.h
int main(void){
int Formart_data[256]={0},i,j,k,m;
for(i=0;i16;i++)
for(k=i3,m=i,j=0;ji;j++,m=1)
if(m1)
Formart_data[k+j]=255;
for(k=0,i=0;i128;i++)//Look at…
printf(++k%8 ? “0x%02X ” : “0x%02X\n”,Formart_data[i]);
return 0;
}
C語言實現多邊形填充
樓主問的是圖形學算法。。1樓給出的是??
有以前寫了一個多邊形種子填充算法用的是貝塞爾方法你拿去看下把。。
1 用Bresenham直線與圓組成的扇形
void CFill4Dlg::Bresenham(int x0,int y0,int x1,int y1,int color)
{
int x,y,dx,dy,e;
dx=y1-x0;
dy=y1-y0;
e=-dx;
x=x0;
y=y0;
CClientDC dc(this);
for(x=x0;xx1;x++)
{
dc.SetPixel(x,(int)(y+0.5),color);
e=e+2*dy;
if(e=0)
{
y++;
e=e-2*dx;
}
}
}
void CFill4Dlg::CirclePoints(int x,int y,int m,int n,int color)
{
CClientDC dc(this);
dc.SetPixel(x+m_cx,y+m_cy,color);
dc.SetPixel(y+m_cx,x+m_cy,color);
dc.SetPixel(-x+m_cx,y+m_cy,color);
dc.SetPixel(y+m_cx,-x+m_cy,color);
dc.SetPixel(x+m_cx,-y+m_cy,color);
dc.SetPixel(-y+m_cx,x+m_cy,color);
dc.SetPixel(-x+m_cx,-y+m_cy,color);
dc.SetPixel(-y+m_cx,-x+m_cy,color);
}
void CFill4Dlg::MidPointCircle(int r,int m,int n,int color)
{
int x,y;
float d;
x=0;
y=r;
d=float(1.25-r);
CirclePoints(x,y,m,n,color);
while(x=y)
{
if(d0)
d+=2*x+3;
else
{
d+=2*(x-y)+5;
y–;
}
x++;
CirclePoints(x,y,m,n,color);
}
}
2 填充:
種子設定 filled_color=getpixel(m_zx,m_zy);
typedef struct
{//記錄種子點
int x;
int y;
}seed;
seed * seed_p;
#define STACKTOTAL 3000
void stack_init();
void setstackempty();
void stackpush(seed pt);
seed stackpop();
bool isstackempty();
int stack_number;
填充:
void CFill4Dlg::FloodFill4(int x,int y,int oldcolor,int newcolor)
{
CClientDC dc(this);
if((int)dc.GetPixel(x,y)==oldcolor)
{
drawpixel(x,y,newcolor);
FloodFill4(x,y+1,oldcolor,newcolor);
FloodFill4(x,y-1,oldcolor,newcolor);
FloodFill4(x-1,y,oldcolor,newcolor);
FloodFill4(x+1,y,oldcolor,newcolor);
}
}
void CFill4Dlg::drawpixel(int x, int y, int color)
{
CClientDC dc(this);
dc.SetPixel(x,y,color);
}
C語言畫圖畫出圖形後如何填充顏色?
#includegraphics.h
#includestdlib.h
main( )
{
int gd=DETECT,gm;
int z,*w,i;
initgraph(gd,gm,””);
setbkcolor(GREEN);
setcolor(RED);
circle(200,200,50);
setcolor(RED);
circle(200,200,30);
setfillstyle(1,YELLOW);
floodfill(200,160,RED);
getch( );
closegraph( );
}
setfillstyle是填充,裡面1的填充模式,YELLOW是顏色
floodfill(x,y,z) x,y分別是x坐標,y坐標,只需要在填充的閉合圖形裡面的任意一點即可,z是最邊間曲線的顏色。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193415.html