Lesson 19: Mastering Trigonometric Functions in VB2022
Learn to harness the power of trigonometric functions for scientific calculations, game development, and engineering applications
Key Takeaway
VB2022 provides powerful trigonometric functions that work with radians. Understanding how to convert between degrees and radians is essential for accurate calculations in physics, engineering, and game development.
Welcome to Lesson 19 of our Visual Basic 2022 Tutorial! In this lesson, you'll learn how to leverage VB2022's trigonometric functions to solve complex mathematical problems, create animations, and develop scientific applications.
Radians vs Degrees
Visual Basic trigonometric functions work with radians, not degrees. Convert angles using the formula:
radians = degrees × (π / 180)
Where π can be precisely calculated as Math.PI or 2 * Math.Asin(1)
19.1 Core Trigonometric Functions
These fundamental trigonometric functions are essential for geometric calculations and scientific applications.
Math.Sin Function
Returns the sine of an angle in radians. Used in wave calculations and physics simulations.
Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles BtnCalculate.Click ' Convert degrees to radians Dim degrees As Double = Val(txtDegrees.Text) Dim radians As Double = degrees * Math.PI / 180 ' Calculate sine value Dim sineValue As Double = Math.Sin(radians) lblResult.Text = "Sin(" & degrees & "°) = " & Math.Round(sineValue, 4) End Sub
Output Preview
Input: 90 → Output: Sin(90°) = 1.0
Input: 30 → Output: Sin(30°) = 0.5
Input: 0 → Output: Sin(0°) = 0.0
Math.Cos Function
Returns the cosine of an angle in radians. Essential for circular motion calculations.
Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles BtnCalculate.Click Dim degrees As Double = Val(txtDegrees.Text) Dim radians As Double = degrees * Math.PI / 180 ' Calculate cosine value Dim cosineValue As Double = Math.Cos(radians) lblResult.Text = "Cos(" & degrees & "°) = " & Math.Round(cosineValue, 4) End Sub
Output Preview
Input: 0 → Output: Cos(0°) = 1.0
Input: 60 → Output: Cos(60°) = 0.5
Input: 90 → Output: Cos(90°) = 0.0
Math.Tan Function
Returns the tangent of an angle in radians. Useful for slope calculations and trigonometry.
Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles BtnCalculate.Click Dim degrees As Double = Val(txtDegrees.Text) Dim radians As Double = degrees * Math.PI / 180 ' Calculate tangent value If degrees % 90 = 0 And degrees % 180 != 0 Then lblResult.Text = "Tan(" & degrees & "°) is undefined" Else Dim tangentValue As Double = Math.Tan(radians) lblResult.Text = "Tan(" & degrees & "°) = " & Math.Round(tangentValue, 4) End If End Sub
Output Preview
Input: 45 → Output: Tan(45°) = 1.0
Input: 30 → Output: Tan(30°) = 0.5774
Input: 90 → Output: Tan(90°) is undefined
19.2 Inverse Trigonometric Functions
These functions return the angle (in radians) for a given trigonometric ratio.
Math.Asin Function
Returns the arcsine (inverse sine) in radians for a value between -1 and 1.
Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles BtnCalculate.Click Dim value As Double = Val(txtValue.Text) If value < -1 Or value > 1 Then lblResult.Text = "Input must be between -1 and 1" Else Dim radians As Double = Math.Asin(value) Dim degrees As Double = radians * 180 / Math.PI lblResult.Text = "Asin(" & value & ") = " & Math.Round(degrees, 2) & "°" End If End Sub
Output Preview
Input: 0.5 → Output: Asin(0.5) = 30°
Input: 1 → Output: Asin(1) = 90°
Input: -0.5 → Output: Asin(-0.5) = -30°
Math.Acos Function
Returns the arccosine (inverse cosine) in radians for a value between -1 and 1.
Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles BtnCalculate.Click Dim value As Double = Val(txtValue.Text) If value < -1 Or value > 1 Then lblResult.Text = "Input must be between -1 and 1" Else Dim radians As Double = Math.Acos(value) Dim degrees As Double = radians * 180 / Math.PI lblResult.Text = "Acos(" & value & ") = " & Math.Round(degrees, 2) & "°" End If End Sub
Output Preview
Input: 0.5 → Output: Acos(0.5) = 60°
Input: 0 → Output: Acos(0) = 90°
Input: 1 → Output: Acos(1) = 0°
Math.Atan Function
Returns the arctangent (inverse tangent) in radians for any real number.
Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles BtnCalculate.Click Dim value As Double = Val(txtValue.Text) ' Calculate arctangent Dim radians As Double = Math.Atan(value) Dim degrees As Double = radians * 180 / Math.PI lblResult.Text = "Atan(" & value & ") = " & Math.Round(degrees, 2) & "°" End Sub
Output Preview
Input: 1 → Output: Atan(1) = 45°
Input: 0.577 → Output: Atan(0.577) ≈ 30°
Input: 1.732 → Output: Atan(1.732) ≈ 60°
19.3 Practical Applications
Trigonometric functions are essential for solving real-world problems in physics, engineering, and game development.
Calculating Distances
Use trigonometry to calculate distances when angles are known. For example, finding the height of a tree using the angle of elevation.
Private Sub BtnCalculateHeight_Click(sender As Object, e As EventArgs) Handles BtnCalculateHeight.Click ' Get user inputs Dim distance As Double = Val(txtDistance.Text) Dim angleDegrees As Double = Val(txtAngle.Text) ' Convert angle to radians Dim angleRadians As Double = angleDegrees * Math.PI / 180 ' Calculate height: height = distance * tan(angle) Dim height As Double = distance * Math.Tan(angleRadians) lblResult.Text = "The height is: " & Math.Round(height, 2) & " units" End Sub
Output Preview
Distance: 20 units, Angle: 30° → Height: ≈11.55 units
Distance: 50 units, Angle: 45° → Height: 50 units
Distance: 100 units, Angle: 60° → Height: ≈173.21 units
Projectile Motion
Calculate the range and maximum height of a projectile using trigonometric functions.
Private Sub BtnCalculateProjectile_Click(sender As Object, e As EventArgs) Handles BtnCalculateProjectile.Click Const g As Double = 9.81 ' Gravity Dim velocity As Double = Val(txtVelocity.Text) Dim angle As Double = Val(txtAngle.Text) ' Convert angle to radians Dim radians As Double = angle * Math.PI / 180 ' Calculate range and height Dim range As Double = (velocity * velocity * Math.Sin(2 * radians)) / g Dim maxHeight As Double = (velocity * velocity * Math.Pow(Math.Sin(radians), 2)) / (2 * g) lblResult.Text = "Range: " & Math.Round(range, 2) & " m | Max Height: " & Math.Round(maxHeight, 2) & " m" End Sub
Output Preview
Velocity: 20 m/s, Angle: 45° → Range: 40.77 m, Height: 10.19 m
Velocity: 30 m/s, Angle: 30° → Range: 79.53 m, Height: 11.47 m
Velocity: 50 m/s, Angle: 60° → Range: 220.92 m, Height: 95.66 m
Trigonometric Functions Summary
Here's a quick reference for all trigonometric functions covered in this lesson:
Function | Description | Example | Range |
---|---|---|---|
Math.Sin(angle) | Sine of angle (radians) | Sin(π/2) = 1 | [-1, 1] |
Math.Cos(angle) | Cosine of angle (radians) | Cos(π) = -1 | [-1, 1] |
Math.Tan(angle) | Tangent of angle (radians) | Tan(π/4) = 1 | All real numbers |
Math.Asin(value) | Arcsine in radians | Asin(1) = π/2 | [-π/2, π/2] |
Math.Acos(value) | Arccosine in radians | Acos(0) = π/2 | [0, π] |
Math.Atan(value) | Arctangent in radians | Atan(1) = π/4 | [-π/2, π/2] |
Radians Conversion
Always convert degrees to radians: radians = degrees × (π / 180)
Precision
Use Math.PI for accurate π value instead of 3.14159
Domain Validation
Validate inputs for inverse functions (Asin, Acos) to be between -1 and 1
Practical Exercises
Apply your trigonometric knowledge with these hands-on exercises:
Exercise 1: Circle Coordinate Generator
Create a program that generates coordinates of points on a circle. The user inputs the radius and number of points. Calculate the (x, y) coordinates using:
- x = radius × cos(angle)
- y = radius × sin(angle)
Display the coordinates in a list box.
Exercise 2: Triangle Solver
Build an application that solves for unknown sides and angles of a right triangle. The user should be able to input any two values (sides or angles) and the program calculates the remaining values using trigonometric functions.
Exercise 3: Pendulum Simulator
Create a simple pendulum simulation. The pendulum position at time t is given by:
θ(t) = θ₀ × cos(√(g/L) × t)
Where θ₀ is initial angle, g is gravity (9.81), L is length. Visualize the pendulum motion using graphics.
Exercise 4: Trigonometric Identities Verifier
Develop a program that verifies trigonometric identities like:
- sin²θ + cos²θ = 1
- tan(θ) = sin(θ)/cos(θ)
- sin(2θ) = 2sinθcosθ
Allow the user to input an angle and see if the identity holds true.
Next Lesson
Ready to learn about formatting output? Continue to Lesson 20: Format Function in VB2022.
Related Resources

Visual Basic 2022 Made Easy
The ultimate beginner-friendly guide for mastering Windows-based application development using Visual Basic in Visual Studio 2022. Whether you're a student, teacher, hobbyist, or self-learner, this book offers a clear, step-by-step approach to help you get started with ease.
What You'll Learn:
- Control structures and procedures
- Decision-making techniques
- Efficient code organization
- Practical application development
- Best practices in VB2022

Mastering Excel VBA 365
Your ultimate step-by-step guide to automating tasks, building macros, and creating powerful applications within Microsoft Excel 365. Whether you're a student, business professional, or aspiring programmer, this comprehensive handbook will help you unlock the full potential of Excel's VBA.
What You'll Learn:
- Control structures in VBA
- Decision-making techniques
- Data processing and analysis
- Report generation
- Automated workflows