Как нарисовать флаг Исландии - VB

Узнай цену своей работы

Формулировка задачи:

помогите пожалуйста нарисовать флаг Исландии в Visual Basic задание №3

Решение задачи: «Как нарисовать флаг Исландии»

textual
Листинг программы
  1. Option Explicit
  2. Dim W As Single, H As Single, p As Object
  3. Const PI = 3.14159265
  4.  
  5. Private Sub Form_Load()
  6.     Picture1.AutoRedraw = True
  7.     W = Picture1.Width: H = Picture1.Height
  8.     Set p = Picture1
  9.     p.ScaleMode = 3
  10.     Call FlagRussia
  11. End Sub
  12.  
  13. Private Sub Option1_Click(Index As Integer)
  14.     p.Cls
  15.     Select Case Index
  16.            Case 1: Call FlagRussia
  17.            Case 2: Call FlagGermany
  18.            Case 3: Call FlagUSA
  19.            Case 4: Call FlagFrance
  20.            Case 5: Call FlagGreece
  21.            Case 6: Call FlagUkraine
  22.            Case 7: Call FlagIceLand
  23.        End Select
  24. End Sub
  25. Sub FlagUkraine()
  26.     p.Line (0, 0)-(W, H / 2), vbBlue, BF
  27.     p.Line (0, H / 2)-(W, H), vbYellow, BF
  28. End Sub
  29. Sub FlagGreece()
  30.     Dim i As Integer, strip As Single
  31.     p.BackColor = vbWhite
  32.     strip = H / 9
  33.     For i = 1 To 9 Step 2
  34.         p.Line (0, strip * (i - 1))-(W, strip * i), vbBlue, BF
  35.     Next i
  36.     p.Line (0, 0)-(W / 2, strip * 5), vbBlue, BF
  37.     p.Line (W / 5, 0)-(W / 5 + strip, strip * 5), vbWhite, BF
  38.     p.Line (0, strip * 2)-(W / 2, strip * 3), vbWhite, BF
  39. End Sub
  40.  
  41. Sub FlagFrance()
  42.     p.Line (0, 0)-(W / 3, H), vbBlue, BF
  43.     p.Line (W / 3, 0)-(W - W / 3, H), vbWhite, BF
  44.     p.Line (W - W / 3, 0)-(W, H), vbRed, BF
  45. End Sub
  46.  
  47. Sub FlagRussia()
  48.     p.Line (0, 0)-(W, H / 3), vbWhite, BF
  49.     p.Line (0, H / 3)-(W, H - H / 3), vbBlue, BF
  50.     p.Line (0, H - H / 3)-(W, H), vbRed, BF
  51. End Sub
  52.  
  53. Sub FlagGermany()
  54.     p.Line (0, 0)-(W, H / 3), vbBlack, BF
  55.     p.Line (0, H / 3)-(W, H - H / 3), vbRed, BF
  56.     p.Line (0, H - H / 3)-(W, H), vbYellow, BF
  57. End Sub
  58.  
  59. Sub FlagIceLand()
  60.     Dim i As Integer, StripW As Single, StripH As Single
  61.     StripW = W / 9: StripH = H / 6
  62.     p.BackColor = vbBlue
  63.     p.Line (StripW * 2.3, 0)-(StripW * 3.7, H), vbWhite, BF
  64.     p.Line (0, StripH * 2.3)-(W, StripH * 3.7), vbWhite, BF
  65.     p.Line (StripW * 2.5, 0)-(StripW * 3.5, H), vbRed, BF
  66.     p.Line (0, StripH * 2.5)-(W, StripH * 3.5), vbRed, BF
  67. End Sub
  68.  
  69. Sub FlagUSA()
  70.    Dim px(1 To 11) As Single, py(1 To 11) As Single, x0 As Single, y0 As Single, r As Integer
  71.    Dim a As Integer, i As Integer, j As Integer, k As Integer, strip As Single
  72.    p.BackColor = vbWhite
  73.    strip = H / 13
  74.    For i = 1 To 13 Step 2
  75.       p.Line (0, strip * (i - 1))-(W, strip * i), vbRed, BF
  76.    Next i
  77.    p.Line (0, 0)-(W / 2, strip * 7), vbBlue, BF
  78.    p.DrawWidth = 2
  79.    
  80.    For j = 1 To 6
  81.      For k = 1 To 5
  82.         a = 18
  83.         x0 = (j - 1) * (strip * 1.9) + strip / 2: y0 = (k - 1) * (strip * 1.5) + strip / 2: r = 5
  84.         For i = 1 To 10
  85.           If (i Mod 2 = 0) Then
  86.               px(i) = x0 + Round(r / 2.75 * Cos(a * 2 * PI / 360))
  87.               py(i) = y0 - Round(r / 2.75 * Sin(a * 2 * PI / 360))
  88.           Else
  89.               px(i) = x0 + Round(r * Cos(a * 2 * PI / 360))
  90.               py(i) = y0 - Round(r * Sin(a * 2 * PI / 360))
  91.           End If
  92.             a = a + 36
  93.         Next i
  94.         px(11) = px(1): py(11) = py(1)
  95.         For i = 1 To 10
  96.             p.Line (px(i), py(i))-(px(i + 1), py(i + 1)), vbWhite
  97.         Next i
  98.         p.FillStyle = 0: p.FillColor = vbWhite
  99.         p.Circle (x0, y0), r / 3, vbWhite
  100.     Next k
  101.   Next j
  102.  
  103.   For j = 1 To 5
  104.      For k = 1 To 4
  105.         a = 18
  106.         x0 = (j - 1) * (strip * 1.9) + strip * 1.3: y0 = (k - 1) * (strip * 1.5) + strip * 1.3: r = 5
  107.         For i = 1 To 10
  108.           If (i Mod 2 = 0) Then
  109.               px(i) = x0 + Round(r / 2.75 * Cos(a * 2 * PI / 360))
  110.               py(i) = y0 - Round(r / 2.75 * Sin(a * 2 * PI / 360))
  111.           Else
  112.               px(i) = x0 + Round(r * Cos(a * 2 * PI / 360))
  113.               py(i) = y0 - Round(r * Sin(a * 2 * PI / 360))
  114.           End If
  115.             a = a + 36
  116.         Next i
  117.         px(11) = px(1): py(11) = py(1)
  118.         For i = 1 To 10
  119.             p.Line (px(i), py(i))-(px(i + 1), py(i + 1)), vbWhite
  120.         Next i
  121.         p.FillStyle = 0: p.FillColor = vbWhite
  122.         p.Circle (x0, y0), r / 3, vbWhite
  123.     Next k
  124.   Next j
  125.  
  126. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы