VB and trig functions - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

VB and trig functions

I am looking for a way to use the trigonometric functions sin, cosine and tangent, as well as someway of inpuing the value of Pi into a VB program? Any ideas how I can do this, or is it fairly impossible?

Comments

  • FazFaz Posts: 75Member
    : I am looking for a way to use the trigonometric functions sin, cosine and tangent, as well as someway of inpuing the value of Pi into a VB program? Any ideas how I can do this, or is it fairly impossible?
    :
    Quite easily actually, though I'm sure that Pi isn't actually a recognized constant in VB. Just Dim it in at the start of the code:

    Dim Pi As Long
    Pi = 3.1415972 'To whatever degree of accuracy you know of

    The sin, cos and tan functions can be used in VB, simply by saying:

    1 = Sin(90)
    y = Sin(x) 'To use variables

    I used the cartesian equations to make a circle in a form.

    Make the X and Y position of an image as MyX and MyY for example,

    Use the known equation:
    Sin(t)^2 + Cos(t)^2 = 1

    From this substitute X = Sin(t) and Y = Cos(t)
    X^2 + Y^2 = 1 This is a cartesian equation of a circle.

    t is a third variable, which is the counter for the loop.

    When t is 0, the image is at the start point. Set the limit for t to be high for a long loop or low for a speedy loop. The image will spin around a centre point in the shape of a circle.

    X^2 + Y^2 = 1
    X^2 + Y^2 = R^2
    General cartesian equations are like this. To make an equation where the Radius is 3 and the centre point is co-ordinate (5,8):
    (X-5)^2 + (Y-8)^2 = 3^2 = 9

    If you don't have a clue what I mean, check it out yourself. You'll need a userform with 3 OptionButtons called Ball, Ball2 and Ball3.
    Enjoy! Have a play with the code.


    Copy this code into the declarations of a userform code:

    Private Sub UserForm_Activate()
    Looper = 0
    Finish = False
    Speed = 100 'Higher value here is actually slower
    Radius = 3 'Recommend < 15
    Squash = 2 '2 is Normal circle
    Looper2 = 0
    Speed2 = 200 'Higher value here is actually slower
    Radius2 = 6 'Recommend < 15
    Squash2 = 2 '2 is Normal circle
    Looper3 = 0
    Speed3 = 300 'Higher value here is actually slower
    Radius3 = 9 'Recommend < 15
    Squash3 = 2 '2 is Normal circle
    Blink = True
    Pi = 3.1415972
    Do
    DoEvents
    'MAIN LOOP

    If Looper > Speed * Pi Then
    Looper = 0
    Else
    Looper = Looper + 1
    End If
    Ball.Left = Cos(Looper / (Speed / 2) - 1) * Radius ^ 2 + 216
    Ball.Top = Sin(Looper / (Speed / 2) - 1) * Radius ^ Squash + 159




    'MAIN LOOP
    If Looper2 > Speed2 * Pi Then
    Looper2 = 0
    Else
    Looper2 = Looper2 + 1
    End If
    Ball2.Left = Cos(Looper2 / (Speed2 / 2) - 1) * Radius2 ^ 2 + 216
    Ball2.Top = Sin(Looper2 / (Speed2 / 2) - 1) * Radius2 ^ Squash2 + 159




    'MAIN LOOP
    If Looper3 > Speed3 * Pi Then
    Looper3 = 0
    Else
    Looper3 = Looper3 + 1
    End If
    Ball3.Left = Cos(Looper3 / (Speed3 / 2) - 1) * Radius3 ^ 2 + 216
    Ball3.Top = Sin(Looper3 / (Speed3 / 2) - 1) * Radius3 ^ Squash3 + 159
    If Finish Then: Exit Do
    Loop
    End Sub

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Finish = True
    End Sub
  • DrMartenDrMarten Posts: 748Member
    : I am looking for a way to use the trigonometric functions sin, cosine and tangent, as well as someway of inpuing the value of Pi into a VB program? Any ideas how I can do this, or is it fairly impossible?
    :


    p=Math.Pi

    a=Math.Sin(42)

    and so on....


    Regards,

    Dr M.

Sign In or Register to comment.