乙個比較土但湊合能用的畫心方法

2021-10-23 08:20:44 字數 1161 閱讀 3714

用一張,在視窗內慢慢的畫出乙個心形。

在網上搜了下,竟然也沒找到乙個比較現成的演算法,找到乙個看起來很漂亮的函式:f(x)=x^(2/3)+(0.9*√(8-x^2))sin(pi*a*x),效果可以看這:和

但是我用上面這個函式展示的效果還是不合我預期,我只能自己想辦法硬寫了個很low的心形,只怪自己數學忘完了:

void drawheart(::graphics * graphics, image* image, int startx, int starty, int offset, int drawwidth, int drawheight)

else if (angle > -90)

else

angle = -angle;

posx += offset * cos(pi / 180 * angle);

posy += offset * sin(pi / 180 * angle);

angle = -angle;

}graphics->drawimage(image, posx, posy, drawwidth, drawheight);

graphics->drawimage(image, sw / 2 - (posx - sw / 2) - drawwidth, posy, drawwidth, drawheight);

pause();

}// 這是畫心的下半截

while (posx > startx)

}} 其實就是我一截一截,把心拼出來的。

中間這個大紅心就是了,這算是我畫的最終結果了,我只是設定了視窗全屏,半透明效果了,所以能看見後面的**,這和這個心的畫法沒有關心。當然了上面引數,大小都可以調整,結果是不一樣的,但都是乙個心形。

其實上面的**只能畫出乙個外圈的心,並且我圖懶省事,心的下半截也懶的想怎麼畫,所以連弧度都沒有,就是一條直線了。並且我是迴圈了10次,一直減小偏移量才弄出來個這麼效果的,如果再迴圈幾遍,這個心就填滿了,就下面這樣迴圈了多次的效果

int offset = drawwidth /5 * 3;

for (int i = 0; i < 10; i++)

乙個簡單但值得深思的問題

今天朋友給我出了這樣一道題 a1 a2 a3 a4 a5 n a為4 8 12 16 20中的任乙個,這4個數字只能用一次 運算符號可以為 或 中的任乙個,加號減號不限使用次數 找找哪個組合可以使n等於14.然後問是否可以用程式來解決.而我當時就想,不是很簡單的問題嗎?使用幾個for語句就可以實現了...

乙個比較特殊的字元

位置在鍵盤中數字鍵 1 的左邊,其上檔符號是 使用shift鍵可以換擋為英文輸入法後,單機該鍵即可輸入。由於計算機顯示的原因,反單引號非常容易和單引號 混淆。一 反單引號是西方符號,主要用在linux的bash中。同時在數學軟體mathematica中也有應用。1.在bash中,其用法同 一樣,用 ...

建立乙個不能用滑鼠操作的表單

新建乙個表單,設定 desktop t.或者設為頂層表單 先加幾個文字框控制項,再加乙個退出按鈕,按鈕.click 中寫 thisform.release 然後在表單的 load 事件中加入下面的 declare long getwindowlong in win32api long,long de...