這是以前找到的乙個vb程式,作者已經不可得知。
昨天晚上與朋友聊畫圖演算法的時候我突然想到了這個程式。
演算法並不是太難,
利用三角函式畫出圖形輪廓。
接著利用api函式填充圖形。
核心演算法如下:
private sub comp(a as double, b as double, c as double)
dim j as long
dim aa as double, bb as double
dim n as double, o as double
dim w as double, z as double
if c > 60 then ' 花莖
ds.a = sin(a * 7) * (13 + 5 / (0.2 + (b * 4) ^ 4)) - sin(b) * 50
ds.b = b * f + 50
ds.c = 625 + cos(a * 7) * (13 + 5 / (0.2 + (b * 4) ^ 4)) + b * 400
ds.d = a - b / 2
ds.e = a
exit sub
end if
aa = a * 2 - 1
bb = b * 2 - 1
if aa * aa + bb * bb < 1 then
if c > 37 then '花葉
j = int(c) and 1
n = iif(j, 6, 4)
o = 0.5 / (a + 0.01) + cos(b * 125) * 3 - a * 300
w = b * h
ds.a = o * cos(n) + w * sin(n) + j * 610 - 390
ds.b = o * sin(n) - w * cos(n) + 550 - j * 350
ds.c = 1180 + cos(bb + aa) * 99 - j * 300
ds.d = 0.4 - a * 0.1 + ((1 - bb * bb) ^ (-h * 6)) * 0.15 - a * b * 0.4 + cos(a + b) / 5 + (cos((o * (a + 1) + (iif(bb > 0, w, -w))) / 25) ^ 30) * 0.1 * (1 - bb * bb)
ds.e = o / 1000# + 0.7 - o * w * 0.000003
elseif c > 32 then '萼片
c = c * 1.16 - 0.15
o = a * 45 - 20
w = b * b * h
z = o * sin(c) + w * cos(c) + 620
ds.a = o * cos(c) - w * sin(c)
ds.b = 28 + cos(bb * 0.5) * 99 - b * b * b * 60 - z / 2 - h
ds.c = z
ds.d = (b * b * 0.3 + ((1 - a * a) ^ 7) * 0.15 + 0.3) * b
ds.e = b * 0.7
else '花
o = aa * (2 - b) * (80 - c * 2)
w = 99 - cos(aa) * 120 - cos(b) * (-h - c * 4.9) + cos((1 - b) ^ 7) * 50 + c * 2
z = o * sin(c) + w * cos(c) + 700
ds.a = o * cos(c) - w * sin(c)
ds.b = bb * 99 - cos(b ^ 7) * 50 - c / 3 - z / 1.35 + 450
ds.c = z
ds.d = (1 - b / 1.2) * 0.9 + a * 0.1
ds.e = ((1 - b) ^ 20) / 4 + 0.05
end if
end if
end sub
private sub drawrose()
dim x as long, y as long
static i as long
dim j as long
dim x1 as long, y1 as long
dim z as long
dim r as long, g as long
dim b as long
dim q as long
x = 1: y = 1:
x1 = 1: y1 = 1
z = 1
r = 255
j = i mod 46
comp rnd, rnd, j / 0.74
i = i + 1
z = ds.c
if z = 0 then z = 1
x = ds.a * f / z - h
y = ds.b * f / z - h
x = x / 2
y = y / 2
q = y * f + x
if not ((not m(q)) or m(q) > z) then exit sub
m(q) = z
r = ds.d * h
g = ds.e * h
b = ds.d * ds.d * (-80)
setpixel me.hdc, x, y, rgb(abs(r), abs(g), abs(b))
end sub
掃雷程式 win32API
1 已實現功能 基本的掃雷方塊的展開,方塊周圍雷數的計算,方塊的標旗,勝負的判斷,難度的更改 2 未實現功能 控制台顯示剩餘標旗數量和當前所用時間,選單項的豐富 3 基本原理 使用一張二維int表儲存每個方格的數字資訊,其中9表示雷 將整個雷區 客戶區 按難度分割成方格,每個方格為乙個靜態控制項,用...
MFC 利用Win32 API遍歷檔案系統
1.遍歷檔案系統所需的工具 1 mfc的cfile並沒有對遍歷檔案系統的功能進行物件導向包裝,因此遍歷檔案系統必須使用較為原始 底層的win32 api 2 大致步驟是 i.使用 setcurrentdirectory函式設定當前處於什麼目錄下 windows中叫做資料夾 ii.使用 findfir...
多執行緒程式設計win32 API
win32 提供了一系列的api函式來完成執行緒的建立 掛起 恢復 終結以及通訊等工作。下面將選取其中的一些重要函式進行說明。1 handle createthread lpsecurity attributes lpthreadattributes,dword dwstacksize,lpthre...