easyx

EasyX簡易繪圖實例

EasyX簡易繪圖實例

繪製一個圓從左向右移動

<span style="font-size:18px;"><span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <graphics.h></span>
<span style="FONT-WEIGHT: bold" class="keyword">int</span> main()
{
<span class="indent">  </span>initgraph(<span class="number" style="color:#09999;">640</span>,<span class="number" style="color:#09999;">480</span>);<span class="comment" style="color:#999988;FONT-STYLE: italic">//繪圖環境640*480</span>
<span class="indent">  </span>setcolor(WHITE);<span class="comment" style="color:#999988;FONT-STYLE: italic">//繪圖前景色爲白色</span>
<span class="indent">  </span>setfillstyle(BS_SOLID);<span class="comment" style="color:#999988;FONT-STYLE: italic">//填充樣式爲固實填充</span>
<span class="indent">  </span>setfillcolor(RED);<span class="comment" style="color:#999988;FONT-STYLE: italic">//填充顏色爲藍色</span>
<span class="indent">  </span>BeginBatchDraw();<span class="comment" style="color:#999988;FONT-STYLE: italic">//開始批量繪圖</span>
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">for</span>(<span style="FONT-WEIGHT: bold" class="keyword">int</span> i=<span class="number" style="color:#09999;">50</span>; i<<span class="number" style="color:#09999;">600</span>; i++)
<span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span>circle(i,<span class="number" style="color:#09999;">100</span>,<span class="number" style="color:#09999;">40</span>);<span class="comment" style="color:#999988;FONT-STYLE: italic">//畫圓</span>
<span class="indent">  </span><span class="indent">  </span>floodfill(i, <span class="number" style="color:#09999;">100</span>, WHITE);<span class="comment" style="color:#999988;FONT-STYLE: italic">//填充</span>
<span class="indent">  </span><span class="indent">  </span>FlushBatchDraw();<span class="comment" style="color:#999988;FONT-STYLE: italic">//執行未完成的繪製任務</span>
<span class="indent">  </span><span class="indent">  </span>Sleep(<span class="number" style="color:#09999;">10</span>);<span class="comment" style="color:#999988;FONT-STYLE: italic">//掛起50毫秒</span>
<span class="indent">  </span><span class="indent">  </span>cleardevice();<span class="comment" style="color:#999988;FONT-STYLE: italic">//用背景色清空屏幕</span>
<span class="indent">  </span>}
<span class="indent">  </span>EndBatchDraw();<span class="comment" style="color:#999988;FONT-STYLE: italic">//結束批量繪製</span>
<span class="indent">  </span>closegraph();<span class="comment" style="color:#999988;FONT-STYLE: italic">//關閉圖形環境</span>
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">return</span> <span class="number" style="color:#09999;">0</span>;
}</span>

力學:彈跳球模擬程序

<span style="font-size:18px;"><span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <graphics.h></span>
<span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <conio.h></span>
<span style="FONT-WEIGHT: bold" class="keyword">int</span> main()
{
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">double</span> h = <span class="number" style="color:#09999;">300</span>;				<span class="comment" style="color:#999988;FONT-STYLE: italic">// 高度</span>
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">double</span> v = <span class="number" style="color:#09999;">0</span>;				<span class="comment" style="color:#999988;FONT-STYLE: italic">// 速度(方向向下)</span>
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">double</span> dv = <span class="number" style="color:#09999;">9.8</span> / <span class="number" style="color:#09999;">50</span>;		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 加速度(每 1/50 秒)</span>
<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 初始化繪圖窗口</span>
<span class="indent">  </span>initgraph(<span class="number" style="color:#09999;">640</span>, <span class="number" style="color:#09999;">480</span>);
<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫地平線</span>
<span class="indent">  </span>line(<span class="number" style="color:#09999;">100</span>, <span class="number" style="color:#09999;">421</span>, <span class="number" style="color:#09999;">540</span>, <span class="number" style="color:#09999;">421</span>);
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">while</span>(!_kbhit())
<span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span>v += dv;				<span class="comment" style="color:#999988;FONT-STYLE: italic">// 根據加速度計算速度</span>
<span class="indent">  </span><span class="indent">  </span>h -= (v - dv / <span class="number" style="color:#09999;">2</span>);		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 計算高度</span>
<span class="indent">  </span><span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 如果高度低於地平線,實現反彈,速度方向取反</span>
<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">if</span> (h <= <span class="number" style="color:#09999;">0</span>)
<span class="indent">  </span><span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span>h += (v - dv / <span class="number" style="color:#09999;">2</span>);
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span>v = - v * <span class="number" style="color:#09999;">0.9</span>;		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 反彈時能量損耗 10%</span>
<span class="indent">  </span><span class="indent">  </span>}
<span class="indent">  </span><span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫綠色球</span>
<span class="indent">  </span><span class="indent">  </span>setcolor(GREEN);
<span class="indent">  </span><span class="indent">  </span>circle(<span class="number" style="color:#09999;">320</span>, <span class="number" style="color:#09999;">400</span> - <span style="FONT-WEIGHT: bold" class="keyword">int</span>(h), <span class="number" style="color:#09999;">20</span>);
<span class="indent">  </span><span class="indent">  </span>Sleep(<span class="number" style="color:#09999;">20</span>);		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 延時(每幀延時 1/50 秒)</span>
<span class="indent">  </span><span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 擦掉球</span>
<span class="indent">  </span><span class="indent">  </span>setcolor(BLACK);
<span class="indent">  </span><span class="indent">  </span>circle(<span class="number" style="color:#09999;">320</span>, <span class="number" style="color:#09999;">400</span> - <span style="FONT-WEIGHT: bold" class="keyword">int</span>(h), <span class="number" style="color:#09999;">20</span>);
<span class="indent">  </span>}
<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 關閉繪圖窗口</span>
<span class="indent">  </span>closegraph();
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">return</span> <span class="number" style="color:#09999;">0</span>;
}</span>

鐘錶模擬程序(錶針形式)

<span style="font-size:18px;"><span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <graphics.h></span>
<span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <conio.h></span>
<span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <math.h></span>

<span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#<span class="keyword" style="color:#333333;">define</span>	PI	3.1415926536</span>

<span style="FONT-WEIGHT: bold" class="keyword">void</span> DrawHand(<span style="FONT-WEIGHT: bold" class="keyword">int</span> hour, <span style="FONT-WEIGHT: bold" class="keyword">int</span> minute, <span style="FONT-WEIGHT: bold" class="keyword">int</span> second)
{
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">double</span> a_hour, a_min, a_sec;					<span class="comment" style="color:#999988;FONT-STYLE: italic">// 時、分、秒針的弧度值</span>
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">int</span> x_hour, y_hour, x_min, y_min, x_sec, y_sec;	<span class="comment" style="color:#999988;FONT-STYLE: italic">// 時、分、秒針的末端位置</span>

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 計算時、分、秒針的弧度值</span>
<span class="indent">  </span>a_sec = second * <span class="number" style="color:#09999;">2</span> * PI / <span class="number" style="color:#09999;">60</span>;
<span class="indent">  </span>a_min = minute * <span class="number" style="color:#09999;">2</span> * PI / <span class="number" style="color:#09999;">60</span> + a_sec / <span class="number" style="color:#09999;">60</span>;
<span class="indent">  </span>a_hour= hour * <span class="number" style="color:#09999;">2</span> * PI / <span class="number" style="color:#09999;">12</span> + a_min / <span class="number" style="color:#09999;">12</span>;

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 計算時、分、秒針的末端位置</span>
<span class="indent">  </span>x_sec = <span style="FONT-WEIGHT: bold" class="keyword">int</span>(<span class="number" style="color:#09999;">120</span> * sin(a_sec));
<span class="indent">  </span>y_sec = <span style="FONT-WEIGHT: bold" class="keyword">int</span>(<span class="number" style="color:#09999;">120</span> * cos(a_sec));
<span class="indent">  </span>x_min = <span style="FONT-WEIGHT: bold" class="keyword">int</span>(<span class="number" style="color:#09999;">100</span> * sin(a_min));
<span class="indent">  </span>y_min = <span style="FONT-WEIGHT: bold" class="keyword">int</span>(<span class="number" style="color:#09999;">100</span> * cos(a_min));
<span class="indent">  </span>x_hour= <span style="FONT-WEIGHT: bold" class="keyword">int</span>(<span class="number" style="color:#09999;">70</span> * sin(a_hour));
<span class="indent">  </span>y_hour= <span style="FONT-WEIGHT: bold" class="keyword">int</span>(<span class="number" style="color:#09999;">70</span> * cos(a_hour));

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫時針</span>
<span class="indent">  </span>setlinestyle(PS_SOLID, <span class="number" style="color:#09999;">10</span>);
<span class="indent">  </span>setcolor(WHITE);
<span class="indent">  </span>line(<span class="number" style="color:#09999;">320</span> + x_hour, <span class="number" style="color:#09999;">240</span> - y_hour, <span class="number" style="color:#09999;">320</span> - x_hour / <span class="number" style="color:#09999;">7</span>, <span class="number" style="color:#09999;">240</span> + y_hour / <span class="number" style="color:#09999;">7</span>);

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫分針</span>
<span class="indent">  </span>setlinestyle(PS_SOLID, <span class="number" style="color:#09999;">6</span>);
<span class="indent">  </span>setcolor(LIGHTGRAY);
<span class="indent">  </span>line(<span class="number" style="color:#09999;">320</span> + x_min, <span class="number" style="color:#09999;">240</span> - y_min, <span class="number" style="color:#09999;">320</span> - x_min / <span class="number" style="color:#09999;">5</span>, <span class="number" style="color:#09999;">240</span> + y_min / <span class="number" style="color:#09999;">5</span>);

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫秒針</span>
<span class="indent">  </span>setlinestyle(PS_SOLID, <span class="number" style="color:#09999;">2</span>);
<span class="indent">  </span>setcolor(RED);
<span class="indent">  </span>line(<span class="number" style="color:#09999;">320</span> + x_sec, <span class="number" style="color:#09999;">240</span> - y_sec, <span class="number" style="color:#09999;">320</span> - x_sec / <span class="number" style="color:#09999;">3</span>, <span class="number" style="color:#09999;">240</span> + y_sec / <span class="number" style="color:#09999;">3</span>);
}

<span style="FONT-WEIGHT: bold" class="keyword">void</span> DrawDial()
{
<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 繪製一個簡單的錶盤</span>
<span class="indent">  </span>circle(<span class="number" style="color:#09999;">320</span>, <span class="number" style="color:#09999;">240</span>, <span class="number" style="color:#09999;">2</span>);
<span class="indent">  </span>circle(<span class="number" style="color:#09999;">320</span>, <span class="number" style="color:#09999;">240</span>, <span class="number" style="color:#09999;">60</span>);
<span class="indent">  </span>circle(<span class="number" style="color:#09999;">320</span>, <span class="number" style="color:#09999;">240</span>, <span class="number" style="color:#09999;">160</span>);
<span class="indent">  </span>outtextxy(<span class="number" style="color:#09999;">296</span>, <span class="number" style="color:#09999;">310</span>, <span class="string" style="color:#dd1144;">"BestAns"</span>);

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 繪製刻度</span>
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">int</span> x, y;
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">for</span> (<span style="FONT-WEIGHT: bold" class="keyword">int</span> i=<span class="number" style="color:#09999;">0</span>; i<<span class="number" style="color:#09999;">60</span>; i++)
<span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span>x = <span class="number" style="color:#09999;">320</span> + <span style="FONT-WEIGHT: bold" class="keyword">int</span>(<span class="number" style="color:#09999;">145</span> * sin(PI * <span class="number" style="color:#09999;">2</span> * i / <span class="number" style="color:#09999;">60</span>));
<span class="indent">  </span><span class="indent">  </span>y = <span class="number" style="color:#09999;">240</span> + <span style="FONT-WEIGHT: bold" class="keyword">int</span>(<span class="number" style="color:#09999;">145</span> * cos(PI * <span class="number" style="color:#09999;">2</span> * i / <span class="number" style="color:#09999;">60</span>));

<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">if</span> (i % <span class="number" style="color:#09999;">15</span> == <span class="number" style="color:#09999;">0</span>)
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span>bar(x - <span class="number" style="color:#09999;">5</span>, y - <span class="number" style="color:#09999;">5</span>, x + <span class="number" style="color:#09999;">5</span>, y + <span class="number" style="color:#09999;">5</span>);
<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">else</span> <span style="FONT-WEIGHT: bold" class="keyword">if</span> (i % <span class="number" style="color:#09999;">5</span> == <span class="number" style="color:#09999;">0</span>)
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span>circle(x, y, <span class="number" style="color:#09999;">3</span>);
<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">else</span>
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span>putpixel(x, y, WHITE);
<span class="indent">  </span>}
}

<span style="FONT-WEIGHT: bold" class="keyword">void</span> main()
{
<span class="indent">  </span>initgraph(<span class="number" style="color:#09999;">640</span>, <span class="number" style="color:#09999;">480</span>);		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 初始化 640 x 480 的繪圖窗口</span>

<span class="indent">  </span>DrawDial();					<span class="comment" style="color:#999988;FONT-STYLE: italic">// 繪製錶盤</span>

<span class="indent">  </span>setwritemode(R2_XORPEN);	<span class="comment" style="color:#999988;FONT-STYLE: italic">// 設置 XOR 繪圖模式</span>

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 繪製錶針</span>
<span class="indent">  </span>SYSTEMTIME ti;				<span class="comment" style="color:#999988;FONT-STYLE: italic">// 定義變量保存當前時間</span>
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">while</span>(!kbhit())				<span class="comment" style="color:#999988;FONT-STYLE: italic">// 按任意鍵退出鐘錶程序</span>
<span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span>GetLocalTime(&ti);		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 獲取當前時間</span>
<span class="indent">  </span><span class="indent">  </span>DrawHand(ti.wHour, ti.wMinute, ti.wSecond);	<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫表針</span>
<span class="indent">  </span><span class="indent">  </span>Sleep(<span class="number" style="color:#09999;">1000</span>);			<span class="comment" style="color:#999988;FONT-STYLE: italic">// 延時 1 秒</span>
<span class="indent">  </span><span class="indent">  </span>DrawHand(ti.wHour, ti.wMinute, ti.wSecond);	<span class="comment" style="color:#999988;FONT-STYLE: italic">// 擦錶針(擦錶針和畫表針的過程是一樣的)</span>
<span class="indent">  </span>}
<span class="indent">  </span>closegraph();				<span class="comment" style="color:#999988;FONT-STYLE: italic">// 關閉繪圖窗口</span>
}</span>
3 輛行駛的小車
<span style="font-size:18px;"><span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <graphics.h></span>
<span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <conio.h></span>
<span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <stdlib.h></span>
<span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <stdio.h></span>

<span class="comment" style="color:#999988;FONT-STYLE: italic">// 聲明需要使用的函數</span>
<span style="FONT-WEIGHT: bold" class="keyword">void</span> carstart(<span style="FONT-WEIGHT: bold" class="keyword">int</span> x, <span style="FONT-WEIGHT: bold" class="keyword">int</span> y, <span style="FONT-WEIGHT: bold" class="keyword">int</span> z);
<span style="FONT-WEIGHT: bold" class="keyword">void</span> drawbus();
<span style="FONT-WEIGHT: bold" class="keyword">void</span> init();

<span class="comment" style="color:#999988;FONT-STYLE: italic">// 定義全局變量</span>
IMAGE img;


<span class="comment" style="color:#999988;FONT-STYLE: italic"><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span>//</span>
<span style="FONT-WEIGHT: bold" class="keyword">void</span> main()
{
<span class="indent">  </span>init();
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">int</span> x=<span class="number" style="color:#09999;">0</span>, y=<span class="number" style="color:#09999;">0</span>, z=<span class="number" style="color:#09999;">0</span>;
<span class="indent">  </span>BeginBatchDraw();

<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">while</span>(!kbhit())
<span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span>x += <span class="number" style="color:#09999;">2</span>;
<span class="indent">  </span><span class="indent">  </span>y++;
<span class="indent">  </span><span class="indent">  </span>z += <span class="number" style="color:#09999;">3</span>;
<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">if</span> (x > <span class="number" style="color:#09999;">600</span>)	x = -<span class="number" style="color:#09999;">200</span>;
<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">if</span> (y > <span class="number" style="color:#09999;">600</span>)	y = -<span class="number" style="color:#09999;">200</span>;
<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">if</span> (z > <span class="number" style="color:#09999;">600</span>)	z = -<span class="number" style="color:#09999;">200</span>;

<span class="indent">  </span><span class="indent">  </span>carstart(x, y, z); 
<span class="indent">  </span><span class="indent">  </span>FlushBatchDraw(); 
<span class="indent">  </span><span class="indent">  </span>Sleep(<span class="number" style="color:#09999;">5</span>);
<span class="indent">  </span>}

<span class="indent">  </span>EndBatchDraw();
<span class="indent">  </span>closegraph();
}


<span class="comment" style="color:#999988;FONT-STYLE: italic"><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span>//</span>
<span class="comment" style="color:#999988;FONT-STYLE: italic">// 初始化函數,初始化窗口大小,獲取所畫圖片</span>
<span style="FONT-WEIGHT: bold" class="keyword">void</span> init()
{
<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 初始化窗口大小</span>
<span class="indent">  </span>initgraph(<span class="number" style="color:#09999;">600</span>, <span class="number" style="color:#09999;">600</span>);

<span class="indent">  </span>outtextxy(<span class="number" style="color:#09999;">70</span>, <span class="number" style="color:#09999;">250</span>, <span class="string" style="color:#dd1144;">"大家好,新手來報到,希望大家多多指教"</span>); 
<span class="indent">  </span>outtextxy(<span class="number" style="color:#09999;">70</span>, <span class="number" style="color:#09999;">270</span>, <span class="string" style="color:#dd1144;">"下面你們會看到我程序的效果,程序很簡單"</span>); 
<span class="indent">  </span>outtextxy(<span class="number" style="color:#09999;">70</span>, <span class="number" style="color:#09999;">290</span>, <span class="string" style="color:#dd1144;">"希望以後再跟大家的交流中學到更多,希望自己以後能編出更好的程序"</span>); 
<span class="indent">  </span>outtextxy(<span class="number" style="color:#09999;">70</span>, <span class="number" style="color:#09999;">320</span>, <span class="string" style="color:#dd1144;">"請按任意鍵進觀看程序執行效果"</span>); 

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 等待按鍵按下</span>
<span class="indent">  </span>getch();

<span class="indent">  </span>cleardevice();						<span class="comment" style="color:#999988;FONT-STYLE: italic">// 清除上面的文字進入運行效果畫面</span>
<span class="indent">  </span>drawbus();							<span class="comment" style="color:#999988;FONT-STYLE: italic">// 調用繪圖函數,繪製 BUS</span>
<span class="indent">  </span>getimage(&img, <span class="number" style="color:#09999;">80</span>, <span class="number" style="color:#09999;">40</span>, <span class="number" style="color:#09999;">180</span>, <span class="number" style="color:#09999;">90</span>);	<span class="comment" style="color:#999988;FONT-STYLE: italic">// 獲取 BUS 圖片位置,保存在 img 變量中</span>
}


<span class="comment" style="color:#999988;FONT-STYLE: italic"><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span>//</span>
<span class="comment" style="color:#999988;FONT-STYLE: italic">// 車輛行駛程序,通過 putimge 函數,改變移動的像素來達到圖片移動</span>
<span style="FONT-WEIGHT: bold" class="keyword">void</span> carstart(<span style="FONT-WEIGHT: bold" class="keyword">int</span> x, <span style="FONT-WEIGHT: bold" class="keyword">int</span> y, <span style="FONT-WEIGHT: bold" class="keyword">int</span> z)
{
<span class="indent">  </span>cleardevice();
<span class="indent">  </span>putimage(x, <span class="number" style="color:#09999;">40</span>, &img);
<span class="indent">  </span>setlinestyle(PS_SOLID, <span class="number" style="color:#09999;">10</span>);   <span class="comment" style="color:#999988;FONT-STYLE: italic">//設置畫線的大小</span>
<span class="indent">  </span>line(<span class="number" style="color:#09999;">0</span>, <span class="number" style="color:#09999;">135</span>, <span class="number" style="color:#09999;">600</span>, <span class="number" style="color:#09999;">135</span>);
<span class="indent">  </span>putimage(y, <span class="number" style="color:#09999;">220</span>, &img);
<span class="indent">  </span>line(<span class="number" style="color:#09999;">0</span>, <span class="number" style="color:#09999;">315</span>, <span class="number" style="color:#09999;">600</span>, <span class="number" style="color:#09999;">315</span>);
<span class="indent">  </span>putimage(z, <span class="number" style="color:#09999;">380</span>, &img);
<span class="indent">  </span>line(<span class="number" style="color:#09999;">0</span>, <span class="number" style="color:#09999;">475</span>, <span class="number" style="color:#09999;">600</span>, <span class="number" style="color:#09999;">475</span>);
}


<span class="comment" style="color:#999988;FONT-STYLE: italic"><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span><span class="xmlDocTag">///</span>//</span>
<span class="comment" style="color:#999988;FONT-STYLE: italic">// 繪製 BUS 函數,通過畫一些線條,組合它們的位置,組合成一輛小車</span>
<span style="FONT-WEIGHT: bold" class="keyword">void</span> drawbus()
{
<span class="indent">  </span>setcolor(RED);
<span class="indent">  </span>setfillstyle(BLUE);

<span class="indent">  </span>fillcircle(<span class="number" style="color:#09999;">120</span>, <span class="number" style="color:#09999;">120</span>, <span class="number" style="color:#09999;">10</span>); 		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車的輪胎</span>
<span class="indent">  </span>fillcircle(<span class="number" style="color:#09999;">200</span>, <span class="number" style="color:#09999;">120</span>, <span class="number" style="color:#09999;">10</span>); 		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車的輪胎</span>
<span class="indent">  </span>line(<span class="number" style="color:#09999;">80</span>,  <span class="number" style="color:#09999;">120</span>, <span class="number" style="color:#09999;">110</span>, <span class="number" style="color:#09999;">120</span>);		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車的底部車板</span>
<span class="indent">  </span>line(<span class="number" style="color:#09999;">80</span>,  <span class="number" style="color:#09999;">40</span>,  <span class="number" style="color:#09999;">80</span>,  <span class="number" style="color:#09999;">120</span>); 		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車的四周車板</span>
<span class="indent">  </span>line(<span class="number" style="color:#09999;">130</span>, <span class="number" style="color:#09999;">120</span>, <span class="number" style="color:#09999;">190</span>, <span class="number" style="color:#09999;">120</span>);		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車的底部車板</span>
<span class="indent">  </span>line(<span class="number" style="color:#09999;">210</span>, <span class="number" style="color:#09999;">120</span>, <span class="number" style="color:#09999;">250</span>, <span class="number" style="color:#09999;">120</span>);		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車的底部車板</span>
<span class="indent">  </span>line(<span class="number" style="color:#09999;">250</span>, <span class="number" style="color:#09999;">40</span>,  <span class="number" style="color:#09999;">250</span>, <span class="number" style="color:#09999;">120</span>); 		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車的四周車板</span>
<span class="indent">  </span>line(<span class="number" style="color:#09999;">80</span>,  <span class="number" style="color:#09999;">40</span>,  <span class="number" style="color:#09999;">250</span>, <span class="number" style="color:#09999;">40</span>);		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車的頂部車板</span>

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車窗</span>
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">for</span>(<span style="FONT-WEIGHT: bold" class="keyword">int</span> x = <span class="number" style="color:#09999;">90</span>, y = <span class="number" style="color:#09999;">100</span>; x < <span class="number" style="color:#09999;">190</span> && y < <span class="number" style="color:#09999;">190</span>; x += <span class="number" style="color:#09999;">15</span>, y += <span class="number" style="color:#09999;">15</span>)
<span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span>rectangle(x, <span class="number" style="color:#09999;">60</span>, y, <span class="number" style="color:#09999;">70</span>);
<span class="indent">  </span>}

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫車門</span>
<span class="indent">  </span>rectangle(<span class="number" style="color:#09999;">220</span>, <span class="number" style="color:#09999;">60</span>, <span class="number" style="color:#09999;">240</span>, <span class="number" style="color:#09999;">120</span>);
<span class="indent">  </span>line(<span class="number" style="color:#09999;">230</span>, <span class="number" style="color:#09999;">60</span>, <span class="number" style="color:#09999;">230</span>, <span class="number" style="color:#09999;">120</span>);
<span class="indent">  </span>circle(<span class="number" style="color:#09999;">230</span>, <span class="number" style="color:#09999;">90</span>, <span class="number" style="color:#09999;">5</span>); 
}</span>
鼠標操作演示
<span style="font-size:18px;"><span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <graphics.h></span>
<span class="preprocessor" style="color:#999999;FONT-WEIGHT: bold">#include <conio.h></span>

<span style="FONT-WEIGHT: bold" class="keyword">int</span> main()
{
<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 初始化圖形窗口</span>
<span class="indent">  </span>initgraph(<span class="number" style="color:#09999;">640</span>, <span class="number" style="color:#09999;">480</span>);

<span class="indent">  </span>MOUSEMSG m;		<span class="comment" style="color:#999988;FONT-STYLE: italic">// 定義鼠標消息</span>

<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">while</span>(<span style="FONT-WEIGHT: bold" class="keyword">true</span>)
<span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 獲取一條鼠標消息</span>
<span class="indent">  </span><span class="indent">  </span>m = GetMouseMsg();

<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">switch</span>(m.uMsg)
<span class="indent">  </span><span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">case</span> WM_MOUSEMOVE:
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 鼠標移動的時候畫紅色的小點</span>
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span>putpixel(m.x, m.y, RED);
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">break</span>;

<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">case</span> WM_LBUTTONDOWN:
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 如果點左鍵的同時按下了 Ctrl 鍵</span>
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">if</span> (m.mkCtrl)
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫一個大方塊</span>
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span>rectangle(m.x-<span class="number" style="color:#09999;">10</span>, m.y-<span class="number" style="color:#09999;">10</span>, m.x+<span class="number" style="color:#09999;">10</span>, m.y+<span class="number" style="color:#09999;">10</span>);
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">else</span>
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 畫一個小方塊</span>
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span>rectangle(m.x-<span class="number" style="color:#09999;">5</span>, m.y-<span class="number" style="color:#09999;">5</span>, m.x+<span class="number" style="color:#09999;">5</span>, m.y+<span class="number" style="color:#09999;">5</span>);
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">break</span>;

<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">case</span> WM_RBUTTONUP:
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">return</span> <span class="number" style="color:#09999;">0</span>;	<span class="comment" style="color:#999988;FONT-STYLE: italic">// 按鼠標右鍵退出程序</span>
<span class="indent">  </span><span class="indent">  </span>}
<span class="indent">  </span>}

<span class="indent">  </span><span class="comment" style="color:#999988;FONT-STYLE: italic">// 關閉圖形窗口</span>
<span class="indent">  </span>closegraph();
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">return</span> <span class="number" style="color:#09999;">0</span>
}</span>

 模擬蒙特卡羅法求π的值

<span style="font-size:18px;"><span class="comment" style="color:#999988;FONT-STYLE: italic">#include <graphics.h></span>
<span class="comment" style="color:#999988;FONT-STYLE: italic">#include <conio.h></span>
<span class="comment" style="color:#999988;FONT-STYLE: italic">#include <time.h></span>
<span class="comment" style="color:#999988;FONT-STYLE: italic">#include <stdlib.h></span>
<span class="comment" style="color:#999988;FONT-STYLE: italic">#include <stdio.h></span>
<span style="FONT-WEIGHT: bold" class="keyword">int</span> main()
{
<span class="indent">  </span>long <span style="FONT-WEIGHT: bold" class="keyword">m</span>=<span class="number" style="color:#09999;">0</span>,n=<span class="number" style="color:#09999;">0</span>,i;
<span class="indent">  </span>double xi,yi,<span style="FONT-WEIGHT: bold" class="keyword">y</span>;
<span class="indent">  </span>initgraph(<span class="number" style="color:#09999;">640</span>, <span class="number" style="color:#09999;">480</span>);<span class="regexp" style="color:#09926;">//</span> 初始化 <span class="number" style="color:#09999;">640</span> <span style="FONT-WEIGHT: bold" class="keyword">x</span> <span class="number" style="color:#09999;">480</span> 的繪圖窗口
<span class="indent">  </span>setcolor(YELLOW);
<span class="regexp" style="color:#09926;">//line</span>(<span class="number" style="color:#09999;">200</span>,<span class="number" style="color:#09999;">50</span>,<span class="number" style="color:#09999;">200</span>,<span class="number" style="color:#09999;">400</span>);line(<span class="number" style="color:#09999;">200</span>,<span class="number" style="color:#09999;">50</span>,<span class="number" style="color:#09999;">205</span>,<span class="number" style="color:#09999;">60</span>); line(<span class="number" style="color:#09999;">200</span>,<span class="number" style="color:#09999;">50</span>,<span class="number" style="color:#09999;">195</span>,<span class="number" style="color:#09999;">60</span>);
<span class="regexp" style="color:#09926;">//line</span>(<span class="number" style="color:#09999;">50</span>,<span class="number" style="color:#09999;">200</span>,<span class="number" style="color:#09999;">400</span>,<span class="number" style="color:#09999;">200</span>);line(<span class="number" style="color:#09999;">400</span>,<span class="number" style="color:#09999;">200</span>,<span class="number" style="color:#09999;">390</span>,<span class="number" style="color:#09999;">195</span>); line(<span class="number" style="color:#09999;">400</span>,<span class="number" style="color:#09999;">200</span>,<span class="number" style="color:#09999;">390</span>,<span class="number" style="color:#09999;">205</span>);
<span class="indent">  </span>rectangle(<span class="number" style="color:#09999;">220</span>,<span class="number" style="color:#09999;">100</span>,<span class="number" style="color:#09999;">420</span>,<span class="number" style="color:#09999;">300</span>);
<span class="indent">  </span>circle(<span class="number" style="color:#09999;">320</span>,<span class="number" style="color:#09999;">200</span>,<span class="number" style="color:#09999;">100</span>);
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">srand</span>((unsigned)<span style="FONT-WEIGHT: bold" class="keyword">time</span>(NULL));
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">for</span>(i=<span class="number" style="color:#09999;">0</span>; i<<span class="number" style="color:#09999;">100000</span>; i++)   /<span class="variable" style="color:#08080;">*設</span>置產生隨機數的個數<span class="variable" style="color:#08080;">*/</span>
<span class="indent">  </span>{
<span class="indent">  </span><span class="indent">  </span><span class="regexp" style="color:#09926;">/*---產生-1到1之間的隨機數xi和yi-----*/</span>
<span class="indent">  </span><span class="indent">  </span>xi=(<span style="FONT-WEIGHT: bold" class="keyword">rand</span>()<span class="variable" style="color:#08080;">%(</span><span class="number" style="color:#09999;">1000</span>-<span class="number" style="color:#09999;">0</span>+<span class="number" style="color:#09999;">1</span>)+<span class="number" style="color:#09999;">0</span>)/<span class="number" style="color:#09999;">500.0</span>-<span class="number" style="color:#09999;">1.0</span>;
<span class="indent">  </span><span class="indent">  </span>yi=(<span style="FONT-WEIGHT: bold" class="keyword">rand</span>()<span class="variable" style="color:#08080;">%(</span><span class="number" style="color:#09999;">1000</span>-<span class="number" style="color:#09999;">0</span>+<span class="number" style="color:#09999;">1</span>)+<span class="number" style="color:#09999;">0</span>)/<span class="number" style="color:#09999;">500.0</span>-<span class="number" style="color:#09999;">1.0</span>;
<span class="indent">  </span><span class="indent">  </span>putpixel((<span style="FONT-WEIGHT: bold" class="keyword">int</span>)(xi<span class="variable" style="color:#08080;">*100</span>+<span class="number" style="color:#09999;">320</span>),(<span style="FONT-WEIGHT: bold" class="keyword">int</span>)(yi<span class="variable" style="color:#08080;">*100</span>+<span class="number" style="color:#09999;">200</span>),(<span style="FONT-WEIGHT: bold" class="keyword">int</span>)GREEN);<span class="regexp" style="color:#09926;">/*在正方形區域內畫點*/</span>
<span class="indent">  </span><span class="indent">  </span>/<span class="variable" style="color:#08080;">*printf</span>(<span class="string" style="color:#dd1144;">"xi=<span class="variable" style="color:#08080;">%f</span>,yi=<span class="variable" style="color:#08080;">%f</span>\n"</span>,xi,yi);<span class="variable" style="color:#08080;">*/</span>
<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">if</span>(yi<span class="variable" style="color:#08080;">*yi</span>>=(-(<span class="number" style="color:#09999;">1</span>-xi<span class="variable" style="color:#08080;">*xi</span>))&&yi<span class="variable" style="color:#08080;">*yi</span><=<span class="number" style="color:#09999;">1</span>-xi<span class="variable" style="color:#08080;">*xi</span>) /<span class="variable" style="color:#08080;">*判</span>斷是否在圓內並計數<span class="variable" style="color:#08080;">*/</span>
<span class="indent">  </span><span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">m</span>++,n++;
<span class="indent">  </span><span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">else</span> <span style="FONT-WEIGHT: bold" class="keyword">m</span>++;
<span class="indent">  </span><span class="indent">  </span>Sleep(<span class="number" style="color:#09999;">10</span>);
<span class="indent">  </span>}
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">y</span>=<span class="number" style="color:#09999;">4.0</span><span class="variable" style="color:#08080;">*n</span>/<span style="FONT-WEIGHT: bold" class="keyword">m</span>;
<span class="indent">  </span><span class="regexp" style="color:#09926;">/*計算PI值*/</span>
<span class="indent">  </span>char str[<span class="number" style="color:#09999;">100</span>];
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">sprintf</span>(str,<span class="string" style="color:#dd1144;">"PI=<span class="variable" style="color:#08080;">%f</span>"</span>,<span style="FONT-WEIGHT: bold" class="keyword">y</span>);
<span class="indent">  </span>outtextxy(<span class="number" style="color:#09999;">280</span>,<span class="number" style="color:#09999;">400</span>,str);
<span class="indent">  </span>getch();
<span class="indent">  </span>closegraph();<span class="regexp" style="color:#09926;">//</span> 關閉繪圖窗口
<span class="indent">  </span><span style="FONT-WEIGHT: bold" class="keyword">return</span> <span class="number" style="color:#09999;">0</span>;
}</span>
發佈了37 篇原創文章 · 獲贊 22 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章