2014-07-09 105 views
-2

最近,我用這個代碼找到正弦和餘弦。然而,我對任何給定的輸出/答案都有問題。請幫助我,並找到正確的代碼來找到給定數字的正弦和餘弦?正弦和餘弦錯誤在答案

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim md1x, md1y, md2x, md2y, md3x, md3y, totalX, totalY, rv As Double 

    md1x = TextBox1.Text * Math.Cos(TextBox2.Text) 
    md1y = TextBox1.Text * Math.Cos(TextBox2.Text) 
    md2x = TextBox4.Text * (Cos(TextBox5.Text)) 
    md2y = TextBox4.Text * (Sin(TextBox5.Text)) 
    md3x = TextBox7.Text * (Cos(TextBox8.Text)) 
    md3y = TextBox7.Text * (Sin(TextBox8.Text)) 
    totalX = md1x + md2x + md3x 
    totalY = md1y + md2y + md3y 
    rv = Sqrt(totalX^2 + totalY^2) 

    TextBox16.Text = md1x 
    TextBox15.Text = md1y 
    TextBox14.Text = md2x 
    TextBox13.Text = md2y 
    TextBox12.Text = md3x 
    TextBox11.Text = md3y 
    TextBox10.Text = rv 
End Sub 

末級

+3

你期望什麼,你會得到什麼? –

+0

當你到達這一點時,在TextBox中有什麼?我們無法調試我們看不到的東西(儘管我的最佳猜測是Eric J所回答的)。 – Teepeemm

+0

這個問題似乎是脫離主題,因爲它是關於不理解trig函數。 – duffymo

回答

0

你沒有說明實際的問題是什麼,但一個非常普遍的問題是,角度,預計弧度而不是

角度d必須以弧度表示。乘以Math.PI/180將度數轉換爲弧度。

http://msdn.microsoft.com/en-us/library/system.math.cos(v=vs.110).aspx

另外,TextBox2.Text(等)是string型的,而不是double類型。

嘗試像

md1x = double.Parse(TextBox1.Text) * (Math.Cos(double.Parse(TextBox2.Text))) 

更多容錯,您可以使用double.TryParse代替,到UI提供適當的信息,如果解析失敗。

注意:double.Parse(...)是C#語法。我期望VB.Net語法將類似。任何人都可以隨意編輯這個答案,以便在必要時更正語法。

+0

值得注意的是,如果在使用度數時想要最佳精度,則應將正弦或餘弦計算轉換爲+/- 45度範圍內的一個,然後將得到的角度轉換爲弧度。使用這種方法將產生sinDegrees(180),CosineDegrees(90)和CosineDegrees(270),全部等於零,而不存在非零可表示的弧度數目,使得Sin(x)= 0,也不存在存在任何可表示的弧度數目,使得Cos(x)= 0。 – supercat

+0

好吧,先生,我試過,但輸出爲0. :( – johndave9296

+0

編輯您的問題,以顯示您的嘗試。 –