Рисуем цилиндр

Очередной ответ на задание номер 4 из книги Лукина

Условие: Даны радиус и высота цилиндра. Вычислить объем цилиндра и полную площадь его поверхности. Начертить (это нелегко) цилиндр данного радиуса и высоты. Радиус и высоту вводить в два текстовых поля. Объем и площадь выводить на поверхность формы методом DrawString с 3 знаками после запятой и с текстовыми пояснениями. Высота эллипсов, изображающих основания цилиндра, должна быть в два раза меньше их ширины

Решение:

Public Class Form1
    'объявляем глобальные переменные и присваиваем им значения с текстового поля
    Dim r_cil As Single
    Dim v_cil As Single
    'объявляем глобальный объект для рисования
    Dim graf As Graphics
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'создаём граф объект при загрузке формы, чтобы не прописывать в каждой кнопке
        graf = PictureBox1.CreateGraphics

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'объявляем локальные переменные объёма и площади поверхности
        Dim Ob_cil As Double
        Dim s_cil As Double
        'присваиваем значения из текстового поля
        r_cil = Val(TextBox1.Text) 'радиус цилиндра
        v_cil = Val(TextBox2.Text) 'высота цилиндра
        'вычисляем объём цилиндра
        Ob_cil = Math.PI * (r_cil ^ 2) * v_cil 'вычисляем объём цилиндра по формуле V=pr^2*h
        s_cil = (2 * Math.PI * r_cil * v_cil) + (2 * Math.PI * r_cil ^ 2) 'вычисляем площадь поверхности по формуле S=2*prh + 2pr^2
        'выводим результат в текстовое поле
        TextBox3.Text = Math.Round(Ob_cil, 3)
        TextBox4.Text = Math.Round(s_cil, 3)
        'выводим результат на picturebox
        graf.DrawString("Объём цилиндра = " & Math.Round(Ob_cil, 3), Button1.Font, Brushes.Black, 50, 20)
        graf.DrawString("Полная площадь поверхности цилиндра = " & Math.Round(s_cil, 3), Button1.Font, Brushes.Black, 50, 50)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'присваиваем значения из текстового поля
        r_cil = Val(TextBox1.Text) 'радиус цилиндра
        v_cil = Val(TextBox2.Text) 'высота цилиндра
        'рисуем цилиндр
        graf.DrawEllipse(Pens.Black, 50, 150, r_cil * 2, r_cil) 'верхний эллипс
        graf.DrawEllipse(Pens.Black, 50, v_cil + 150, r_cil * 2, r_cil) 'нижний эллипс
        graf.DrawLine(Pens.Black, 50, 150 + r_cil / 2, 50, 150 + (v_cil + r_cil / 2)) 'левая линия
        graf.DrawLine(Pens.Black, 50 + r_cil * 2, 150 + r_cil / 2, 50 + r_cil * 2, 150 + (v_cil + r_cil / 2)) 'правая линия

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'всё стираем
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        PictureBox1.Image = Nothing

    End Sub

End Class

P.s В связи с тем, что у меня не удалялась надпись, которая была в текстовом поле (результаты вычислений), вывел её в PictureBox.

Итак, что делал:

  1. Объявил глобальные переменные радиуса цилиндра и высоты цилиндра, так как они будут применяться в других кнопках
  2. при загрузке формы создал объект для рисования graf, иначе бы пришлось объявлять два раза в каждой кнопке
  3. первая кнопка объявление локальных переменных объёма и площади, вычисление и вывод результатов в текстовом поле и в picturebox
  4. вторая кнопка рисуем цилиндр в Picturebox.
  5. последняя кнопка всё стирает для новых расчётов.

Скачать программу Рисуем цилиндр
Установки не требует.
Файл exe. Размер 26kb.
На компьютере должен быть установлен net.framework 3.5 и выше.

Запись опубликована в рубрике Мои программы, Мой дневник, Решение заданий vb.net. Добавьте в закладки постоянную ссылку.