致新手 用VB6解決一些有趣的問題(五)

2021-08-25 03:22:55 字數 1573 閱讀 7876

下面,我們來設計乙個強悍的程式

嘿嘿,程式設計起碼要這樣才有點意思嘛

我們在picture上畫乙個三角形,這下可不是print一堆字元了

我們必須要先算出三角形的 三個頂點 然後連線

比如三角形 abc三點 我們以a作為座標原點,對應picture的中心

我們用x,y來計算座標和picture上座標的偏移量,a為(0,0)

如果ab長為a 沿著x軸,那麼b點的座標是(a,0)

現在來算c點,根據餘弦定理有

'c^2=a^2+b^2-2*a*b*cosc

'cosc=(a^2+b^2-c^2)/2ab

別煩惱了,我數學也馬虎,餘弦定理難算,我們就來個簡單的

(聰明的程式設計師會千方百計設計出程式)

以a為圓心 ac長(c)為半徑的園 x^2+y^2 = c^2

以b為圓心 bc長(b)為半徑的園 (x-a)^2+y^2=b^2

c點為兩個圓的交線,所以兩個方程,兩個未知數,注意有兩個交點哦

(隱隱感覺到 這個就是餘弦定理) 解出

2*a*x=a^2+c^2-b^2 '因為我們設ab沿著x軸,所以x只有乙個值

把x代入第乙個方程 得出 y=sqr(c^2 - x^2) ,這裡sqr為平方根

得到的是正值,也就是捨去了低於x軸的那個(程式裡下面的y座標大)

三個標籤 垂直方向對應text1,text2,text3分別存放變長a,b,c

乙個按鈕 乙個picture

private sub command1_click() dim a as single, b as single, c as single dim px(2) as single, py(2) as single dim dx as integer, dy as integer a = csng(text1.text) b = csng(text2.text) c = csng(text3.text) if a + b < c or b + c < a or a + c < b then msgbox "無法夠成三角形!", vbexclamation end if picture1.cls '清除picture上的圖形 picture1.scalemode = 3 '以畫素為單位 picture1.autoredraw = true '自動重畫 dx = cint(picture1.scalewidth / 2) dy = cint(picture1.scaleheight / 2) px(0) = 0: py(0) = 0 px(1) = a: py(1) = 0 px(2) = (a ^ 2 + c ^ 2 - b ^ 2) / (2 * a) py(2) = sqr(c ^ 2 - px(2) ^ 2) picture1.line (dx + px(0), dy + py(0))-(dx + px(1), dy + py(1)) picture1.line (dx + px(1), dy + py(1))-(dx + px(2), dy + py(2)) picture1.line (dx + px(2), dy + py(2))-(dx + px(0), dy + py(0)) end sub

好吧,來看看我們畫出了什麼球樣

想給圖形填充嗎?嘿嘿,哪還要更複雜的演算法呢,加油吧,未來的世界是我們的

新手遇到的一些jquery問題

最近在做專案的時候使用了jquery 新手學習jquery.遇到了一些 奇怪 的問題 各位大神別拍磚 感謝classyuan老大的支援.classyuan的blog.下面列舉一些 1.跟html元素載入事件的時候,會在載入的時候同時執行該事件。錯誤 btnload bind click getpro...

Latex新手可能遇到的一些問題

1 latex的安裝 latex有網頁版還有軟體版,我選用的是miktex texstudio的軟體方式,具體的安裝步驟,可以參考這篇文章 每次安裝完成後就可以通過開啟texstudio進行編輯了 作為新手,實時踩坑,實在痛苦,下面記錄一下踩的幾個坑 1.標題作者不顯示 解決辦法 在 begin下面...

一些解決問題的建議

1.確保自己真正了解相關問題。包括輸入什麼,輸出什麼,兩者之間是什麼關係。然後試著用您所熟悉的資料結構 如某種序列或圖結構 來表示該問題的例項。此外,有時候先直接提出乙個簡單粗暴的解決方案也有助於您理清問題的實質內容。2.找到一種歸簡方法。您是否能將相關輸入轉換成另乙個已解決問題的輸入?以及能讓其輸...