最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中求解圖形的問題

 更新時(shí)間:2022年11月14日 09:34:12   作者:「已注銷」  
這篇文章主要介紹了C語言中求解圖形的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C語言求解圖形問題

什么是圖形問題?

由字符,特殊符號(hào)或數(shù)字組成的各種形狀的圖形問題。

怎么求解圖形問題?

用循環(huán),確定輸出圖形的行數(shù)和每行上的列數(shù),確定每行第一個(gè)字符輸出的空格數(shù),找出每行上字符變化的規(guī)律。

圖形輸出常用模塊:

for(i=1;i<=行數(shù);i++)
{
? ? ?for(j=1;j<=第i行前導(dǎo)空格數(shù);j++)
? ? ? ? ? ? ?printf("");
? ? ?for(k=1;k<=第i行字符串;k++)
? ? ? ? ? ? ?printf(第i行,第j行字符);
? ? ?printf("\n");
}? ??

1.輸出一個(gè)數(shù)字三角形。

代碼如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,j,k;
? for(i=1;i<=5;i++)
? {for(j=1;j<=5-i;j++)
? ? ? printf(" ");
? ?for(k=1;k<=2*i-1;k++)
? ? ? printf("%d",k);
? ?printf("\n");
? }
? ? return 0;
}

2.輸出一個(gè)菱形。

代碼如下:

#include <stdio.h>
int main()
{ ? int i,j ,k;
? ? ? for(i=1;i<=4;i++)
? ? ? ?{
? ? ? ? ? for(j=1;j<=5-i;j++)
? ? ? ? ? ? ? printf(" ");
? ? ? ? ? for(k=1;k<=2*i-1;k++)?
? ? ? ? ? ? ? printf("*");
? ? ? ? ? ? ?printf("\n");
? ? ? ? }
? ? ? ? for(i=1;i<=3;i++)
? ? ? ? ?{
? ? ? ? ? ? for(j=1;j<=i+1;j++)
? ? ? ? ? ? ? ? printf(" ");
? ? ? ? ? ? for(k=1;k<=7-2*i;k++)
? ? ? ? ? ? ? ? printf("*");
? ? ? ? ? ? ? printf("\n");
? ? ? ? ? }
? ? ? ? ? ?return 0;
?}

C語言常用圖形函數(shù)

屏幕顏色的設(shè)置和清屏函數(shù)

① 設(shè)置背景色:

void setbkcolor(int color);

② 設(shè)置前景色:

void setcolor(int color);?

③ 清除圖形屏幕內(nèi)容,使用清屏函數(shù),其調(diào)用格式如下:

void cleardevice( ); ?

注:清除前景圖形,不清除背景。 

基本圖形函數(shù)

① 畫點(diǎn)函數(shù):

將點(diǎn)(x, y)置成color色:void putpixel(int x, int y, int color);

獲得當(dāng)前點(diǎn)(x, y)的顏色值:int getpixel(int x, int y); 

例:使(20, 50)的像素點(diǎn)置成紅色輸出。

putpixel(20, 50, RED);

② 有關(guān)坐標(biāo)位置的函數(shù):

  • 返回x軸的最大值:int getmaxx( ); 
  • 返回y軸的最大值:int getmaxy( ); 
  • 返回游標(biāo)在x軸的位置:int getx( );
  • 返回游標(biāo)在y軸的位置:int gety( );
  • 移動(dòng)游標(biāo)到(x, y)點(diǎn):void moveto(int x, int y);
  • 將游標(biāo)從現(xiàn)行位置(x, y)移動(dòng)到(x+dx, y+dy)的位置,移動(dòng)過程中不畫點(diǎn):void moverel(int dx, int dy);

③ 畫線函數(shù):

畫一條從點(diǎn)(x0, y0)到(x1, y1)的直線:

void ?line(int x0, int y0, int x1, int y1);  

畫一條從現(xiàn)行游標(biāo)到點(diǎn)(x, y)的直線:

void ?lineto(int x, int y); 

 

畫一條從現(xiàn)行游標(biāo)(x, y)到按相對(duì)增量確定的點(diǎn)(x+dx, y+dy)的直線:void  linerel(int dx, int dy);

④ 畫圓弧類函數(shù):

以(x, y)為圓心,radius為半徑,畫一個(gè)圓:

void ?circle(int x, int y, int radius);  

以(x, y)為圓心,radius為半徑,從stangle開始到endangle結(jié)束(用度表示),畫一段圓弧線,逆時(shí)針方向:

void ?arc(int x, int y, int stangle, int endangle, int radius);  

以(x, y)為中心,xradius、yradius為x軸和y軸半徑,從角stangle開始,endangle結(jié)束,畫一段橢圓線,

當(dāng)stangle=0,endangle=360時(shí),畫出一個(gè)完整的橢圓:

void ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);

⑤ 畫多邊形類函數(shù):

以(x1, y1)為左上角,(x2, y2)為右下角,畫一個(gè)矩形框:

void rectangle(int x1, int y1, int x2, inty2); 

畫一個(gè)頂點(diǎn)數(shù)為numpoints,各頂點(diǎn)坐標(biāo)由整型數(shù)組polypoints給出的多邊形。polypoints必須至少有2倍頂點(diǎn)數(shù)個(gè)元素。

每個(gè)頂點(diǎn)坐標(biāo)都定義為x、y,且x在前。當(dāng)畫一個(gè)封閉多邊形時(shí),numpoints的值取實(shí)際多邊形的頂點(diǎn)數(shù)   +1,且數(shù)組polypoints中第一個(gè)和最后一個(gè)點(diǎn)的坐標(biāo)相同:void drawpoly(int numpoints, int *polypoints);

設(shè)置線型和線寬

① 線型:C語言能夠使用的線型如表所示。

② 線寬:C語言能夠使用的線寬如表所示。

③ setlinestyle函數(shù):

  • 功能:用于設(shè)置當(dāng)前繪圖所用的線型和寬度。
  • 原型:setlinestyle(int style, unsigned pattern, int width)
  • 參數(shù)style:用來指定所畫直線的類型,取值見線型表,缺省為實(shí)線;
  • 參數(shù)width:用來指定所畫直線的粗細(xì),以像素為單位,取值見線寬表,缺省值為1個(gè)像素寬。
  • 參數(shù)pattern:該參數(shù)在用戶自定義線型時(shí)使用。如果使用線型表中前4種系統(tǒng)預(yù)定義的線型,則該參數(shù)取值0。pattern是一個(gè)16位二進(jìn)制數(shù),每一位代表一個(gè)像素,該位為1時(shí)顯示,為0時(shí)不顯示。

例如:希望設(shè)置的線型為前12位不顯示,后4位顯示。

此時(shí),pattern值為15,調(diào)用方法為setlinestyle(4, 15, 1)。

填充圖形函數(shù)

① setfillstyle函數(shù):

  • 功能:為各種圖形函數(shù)設(shè)置填充模式和顏色。
  • 原型:setfillstyle(int  pattern, int  color);
  • 參數(shù):color指定填充所用的顏色;pattern用于指定填充模式,取值見下表。

② floodfill函數(shù)

  • 功能:用于對(duì)一指定的封閉區(qū)域進(jìn)行填充,其填充模式和顏色由setfillstyle函數(shù)指定。
  • 原型:floodfill(int  x, int  y, int  border);
  • 參數(shù):x、y指位于填充區(qū)域內(nèi)任意一點(diǎn)的坐標(biāo),該點(diǎn)作為填充的起始點(diǎn);border為填充區(qū)域的邊界顏色。
  • 注意:使用該函數(shù)必須保證要填充的區(qū)域是完全封閉的,否則,該形狀外面的區(qū)域也將被填充。

③ setfillpattern函數(shù)

  • 功能:實(shí)現(xiàn)用戶自定義的填充模式。
  • 原型:setfillpattern(char *pattern, int color);
  • 參數(shù):color指定用戶自定義填充模式的顏色;pattern指向8個(gè)字節(jié),一個(gè)字節(jié)對(duì)應(yīng)8個(gè)像素,8*8個(gè)像素,每一位有亮暗兩種(亮為1,暗為0),通過一個(gè)指向8個(gè)字節(jié)的指針判斷。

圖形存取處理函數(shù)  

測(cè)試要保存左上角為(x1, y1),右下角為(x2, y2)的圖形屏幕區(qū)域內(nèi)的全部?jī)?nèi)容需多少個(gè)字節(jié):

unsigned imagesize(int x1, int y1, int x2, int y2);?

將左上角為(x1, y1),右下角為(x2, y2)的圖形屏幕區(qū)域內(nèi)的圖像保存在內(nèi)存中,指針為mapbuf:

void getimage(int x1, int y1, int x2, int y2, void ?*mapbuf);

將圖像輸出到左上角為點(diǎn)(x, y)的位置上,其中參數(shù)op規(guī)定如何釋放內(nèi)存中的圖像,具體值如表:

void putimage(int x, int y, void * mapbuf, int op);?

文本輸出函數(shù) 在現(xiàn)行位置輸出字符串指針textstring所指的文本:

void outtext(char *textstring);

在規(guī)定的(x, y)位置輸出字符串指針textstring所指的文本,其中x和y為象元坐標(biāo):

void outtextxy(int x, int y, char *textstring);

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++中std::generate函數(shù)的具體使用

    C++中std::generate函數(shù)的具體使用

    std::generate是C++標(biāo)準(zhǔn)庫中的一個(gè)算法,用于生成一個(gè)值的序列并賦值給一個(gè)迭代器范圍內(nèi)的元素,本文就來介紹一下std::generate函數(shù)的具體使用,感興趣的可以了解一下
    2025-02-02
  • c++虛函數(shù)與虛函數(shù)表原理

    c++虛函數(shù)與虛函數(shù)表原理

    這篇文章主要介紹了c++虛函數(shù)與虛函數(shù)表原理,用virtual?修飾的成員函數(shù)叫虛函數(shù),下面圍繞c++虛函數(shù)與虛函數(shù)得相關(guān)資料展開內(nèi)容,需要的朋友可以參考一下
    2021-12-12
  • Qt 編譯配置 Protobuf 的詳細(xì)步驟

    Qt 編譯配置 Protobuf 的詳細(xì)步驟

    在Qt項(xiàng)目中使用Protobuf(Protocol Buffers)可以有效地處理數(shù)據(jù)序列化和反序列化,以下是如何在Qt項(xiàng)目中配置和編譯Protobuf的詳細(xì)步驟,感興趣的朋友一起看看吧
    2024-07-07
  • 基于Matlab實(shí)現(xiàn)嗅覺優(yōu)化算法的示例代碼

    基于Matlab實(shí)現(xiàn)嗅覺優(yōu)化算法的示例代碼

    嗅覺劑優(yōu)化是一種新穎的優(yōu)化算法,旨在模仿氣味分子源尾隨的藥劑的智能行為。本文將利用Matlab實(shí)現(xiàn)這一智能優(yōu)化算法,需要的可以參考一下
    2022-05-05
  • 在C語言編程中設(shè)置和獲取代碼組數(shù)的方法

    在C語言編程中設(shè)置和獲取代碼組數(shù)的方法

    這篇文章主要介紹了在C語言編程中設(shè)置和獲取代碼組數(shù)的方法,分別為setgroups()函數(shù)和getgroups()函數(shù)的使用,需要的朋友可以參考下
    2015-08-08
  • C++兩個(gè)cpp文件間如何進(jìn)行各自函數(shù)的調(diào)用方式

    C++兩個(gè)cpp文件間如何進(jìn)行各自函數(shù)的調(diào)用方式

    這篇文章主要介紹了C++兩個(gè)cpp文件間如何進(jìn)行各自函數(shù)的調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++實(shí)現(xiàn)推箱子功能附加回撤示例

    C++實(shí)現(xiàn)推箱子功能附加回撤示例

    本文主要介紹了C++實(shí)現(xiàn)推箱子功能附加回撤示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C/C++中比較字符串的方法詳解

    C/C++中比較字符串的方法詳解

    這篇文章主要介紹了C/C++中比較字符串的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解C++ 動(dòng)態(tài)庫導(dǎo)出函數(shù)名亂碼及解決

    詳解C++ 動(dòng)態(tài)庫導(dǎo)出函數(shù)名亂碼及解決

    這篇文章主要介紹了C++ 動(dòng)態(tài)庫導(dǎo)出函數(shù)名亂碼及解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • C語言詳細(xì)分析貪心策略中最小生成樹的Prime算法設(shè)計(jì)與實(shí)現(xiàn)

    C語言詳細(xì)分析貪心策略中最小生成樹的Prime算法設(shè)計(jì)與實(shí)現(xiàn)

    最小生成樹的問題還是比較熱門的,最經(jīng)典的莫過于Prime算法和Kruskal算法了,這篇博文我會(huì)詳細(xì)講解Prime算法的設(shè)計(jì)思想與具體代碼的實(shí)現(xiàn),不要求數(shù)據(jù)結(jié)構(gòu)學(xué)的有多好,只要跟著我的思路來,一步一步的分析,調(diào)試,終能成就自己,那就讓我們開始吧
    2022-05-05

最新評(píng)論

甘南县| 柘荣县| 天峻县| 荣成市| 乌鲁木齐市| 安溪县| 宝丰县| 泉州市| 桦甸市| 博客| 盐边县| 永年县| 云南省| 抚州市| 左权县| 万山特区| 深水埗区| 千阳县| 临汾市| 天津市| 招远市| 逊克县| 乌审旗| 炎陵县| 富民县| 积石山| 高碑店市| 济南市| 北安市| 改则县| 行唐县| 彰化市| 陇南市| 松滋市| 达日县| 东源县| 崇明县| 富裕县| 安国市| 清涧县| 宁明县|