Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Заблокирован

Перевести код с VB6, рисующий капли дождя

28.08.2015, 21:29. Показов 1876. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Прошу помощи.
Посмотрел: Картинки с фрагментом кода - подключайтесь! http://arbuz.uz/x_galerea1.html
Взял на пробу самый верхний скрин "капля", в сиренево-розовых тонах. Смотрите ниже.

Пользуюсь VSС-2013. Как исправить ошибки кода VВ? Чего не хватает?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Public Class Form1
   Dim r1 As Integer, r As Integer, pi As Single, x As Single, y As Single
 
    Private Sub Комманда1_Click()
        Cls()
        pi = 4 * Atn(1)
        DrawWidth = 2 : n = 30
        For j = 1 To n
            x = Rnd * 500 + 150 : y = Rnd * 300 + 20
            r1 = 9 * (n - j) + 10 : kaplya()
        Next j
    End Sub
    Private Sub kaplya()
        For i = 0 To pi / 2 Step 0.001
            r = r1 * Sin(i) ^ 3
 Line (r * Cos(i) + x - i * 70, r * Sin(i) + y)-(-r * Cos(-i) _
 + x - i * 70, -r * Sin(-i) + y), _
 RGB(Abs(r), _
 Abs(255 - i * 220), _
 Abs(255 - i * 320))
        Next i
    End Sub
    Private Sub Комманда2_Click()
        End
    End Sub
 
End Class
Сам VSС-2013 насчитал 11 ошибок! Как быть?
Кликните здесь для просмотра всего текста

Ошибка 1 "Cls" не объявлен. Может быть недоступен из-за своего уровня защиты. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 5 9 WindowsApplication1
Ошибка 2 Нет объявления для: "Atn". Эта функция под именем "Atan" перенесена в класс System.Math. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 6 18 WindowsApplication1
Ошибка 3 "DrawWidth" не объявлен. Может быть недоступен из-за своего уровня защиты. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 7 9 WindowsApplication1
Ошибка 4 "n" не объявлен. Может быть недоступен из-за своего уровня защиты. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 7 25 WindowsApplication1
Ошибка 5 "n" не объявлен. Может быть недоступен из-за своего уровня защиты. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 8 22 WindowsApplication1
Ошибка 6 "n" не объявлен. Может быть недоступен из-за своего уровня защиты. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 10 23 WindowsApplication1
Ошибка 7 "Sin" не объявлен. Может быть недоступен из-за своего уровня защиты. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 15 22 WindowsApplication1
Ошибка 8 Операторы "Line" больше не поддерживаются. Функции файлового ввода-вывода доступны в "Microsoft.VisualBasic.FileSystem.LineIn put", а функции для работы с графикой — в "System.Drawing.Graphics.DrawLine". C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 16 2 WindowsApplication1
Ошибка 8 Операторы "Line" больше не поддерживаются. Функции файлового ввода-вывода доступны в "Microsoft.VisualBasic.FileSystem.LineIn put", а функции для работы с графикой — в "System.Drawing.Graphics.DrawLine". C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 16 2 WindowsApplication1
Ошибка 9 "Cos" не объявлен. Может быть недоступен из-за своего уровня защиты. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 16 12 WindowsApplication1
Ошибка 10 "Sin" не объявлен. Может быть недоступен из-за своего уровня защиты. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 16 37 WindowsApplication1
Ошибка 11 Требуется завершение оператора. C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\Form1.vb 16 48 WindowsApplication1
Миниатюры
Перевести код с VB6, рисующий капли дождя   Перевести код с VB6, рисующий капли дождя  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.08.2015, 21:29
Ответы с готовыми решениями:

Как правильно перевести код с VB6, рисующий разноцветную спираль
Здравствуйте! Прошу помощи. Не знаю, как правильно перевести код с VB6, рисующий разноцветную спираль Пытаюсь создать простую картинку...

Капли дождя
Здравствуйте!!! Помогите пожалуйста сделать на консольном окне капли дождя(то есть как льет дождь). Нужно чтобы они падали как на землю!!!...

Получить изображение падающей капли дождя
Получить изображение падающей капли дождя.

11
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
28.08.2015, 22:29
Видимо потому, что код написан для Visual Basic 6. В VB.NET чуть другие названия функций, о чем Вам явно пишет отладчик, если конечно потрудится почитать скрин.
Да и переносы строк кода там делаются иначе.
1
Заблокирован
28.08.2015, 23:00  [ТС]
Dragokas, спасибо за внимание. Ожидал более содержательный ответ.

Сам пытался исправлять ошибки за счёт подсказок VSС-2013. Кажется, даже уверен — зашёл в тупик. Помогите, пожалуйста, кто чем может. Это моя первая задача на Visual Basic.

Все ошибки "исправили", совместно с VSС-2013 — так.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Public Class Form1
   Dim r1 As Integer, r As Integer, pi As Single, x As Single, y As Single
    Dim DrawWidth As Integer
 
    Private Property n As Integer
 
    Private Sub Комманда1_Click()
        Cls()
        pi = 4 * Math.Atan(1)
        DrawWidth = 2 : n = 30
        For j = 1 To n
            x = Rnd * 500 + 150 : y = Rnd * 300 + 20
            r1 = 9 * (n - j) + 10 : kaplya()
        Next j
    End Sub
    Private Sub kaplya()
        For i = 0 To pi / 2 Step 0.001
            r = r1 * Sin(i) ^ 3
            LineInput(r * Cos(i) + x - i * 70,
            r * Sin(i) + y - (-r) * Cos(-i) + x - i * 70, -r * Sin(-i) + y, _
            RGB(Abs(r), Abs(255 - i * 220), Abs(255 - i * 320)))
 
        Next i
    End Sub
    Private Sub Комманда2_Click()
        End
    End Sub
 
    Private Sub Cls()
        Throw New NotImplementedException
    End Sub
 
    Private Function Sin(i As Double) As Integer
        Throw New NotImplementedException
    End Function
 
    Private Function Cos(i As Double) As Integer
        Throw New NotImplementedException
    End Function
 
    Private Function LineInput(p1 As Double, p2 As Single) As Integer
        Throw New NotImplementedException
    End Function
 
    Private Function LineInput(p1 As Double, p2 As Double, p3 As Single) As Integer
        Throw New NotImplementedException
    End Function
 
    Private Function Abs(r As Integer) As Integer
        Throw New NotImplementedException
    End Function
 
    Private Function LineInput(p1 As Double, p2 As Double, p3 As Single, p4 As Integer) As Integer
        Throw New NotImplementedException
    End Function
 
End Class
Поток 0x570 завершился с кодом 259 (0x103).
"WindowsApplication1.vshost.exe" (CLR v4.0.30319: WindowsApplication1.vshost.exe). Загружено "C:\Users\admin\documents\visual studio 2013\Projects\WindowsApplication1\Window sApplication1\bin\Debug\WindowsApplicati on1.exe". Символы загружены.
"WindowsApplication1.vshost.exe" (CLR v4.0.30319: WindowsApplication1.vshost.exe). Загружено "C:\Windows\Microsoft.Net\assembly\GAC_M SIL\System.Runtime.Remoting\v4.0_4.0.0.0 __b77a5c561934e089\System.Runtime.Remoti ng.dll". Невозможно найти или открыть PDB-файл.
Поток 0x9d4 завершился с кодом 259 (0x103).
Поток 0x16cc завершился с кодом 259 (0x103).
Программа "[4648] WindowsApplication1.vshost.exe" завершилась с кодом 0 (0x0).
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
28.08.2015, 23:55
С учетом того, что я не рисую и VB.NET не изучаю вряд ли Вы такой ответ от меня получите.
Скажу перенести тему в родной раздел. Там и подскажут.
1
 Аватар для Petr_S
213 / 230 / 87
Регистрация: 21.04.2013
Сообщений: 404
29.08.2015, 01:36
Лучший ответ Сообщение было отмечено Willi2001 как решение

Решение

Willi2001, как-то жутко это всё выглядит. Я имею ввиду расчетные формулы.
Вот такой вариант. Тоже жутковат, т.к. основан на оригинале:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Size = New Size(700, 500)
    End Sub
 
    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim r1 As Integer, r As Integer, pi As Single, x As Single, y As Single
 
        pi = 4 * Math.Atan(1)
 
        Dim DrawWidth As Integer = 2
        Dim n As Integer = 30
 
        For j = 1 To n
            x = Rnd() * 500 + 150
            y = Rnd() * 300 + 20
            r1 = 9 * (n - j) + 10
 
            Dim p As New Pen(Color.White, 1)
 
            For i = 0 To pi / 2 Step 0.001
                r = r1 * Math.Sin(i) ^ 3
                p.Color = Color.FromArgb(Math.Min(Math.Abs(r), 255), _
                                         Math.Min(Math.Abs(255 - i * 220), 255), _
                                         Math.Min(Math.Abs(255 - i * 320), 255))
                e.Graphics.DrawLine(p, _
                                    New Point(r * Math.Cos(i) + x - i * 70, r * Math.Sin(i) + y), _
                                    New Point(-r * Math.Cos(-i) + x - i * 70, -r * Math.Sin(-i) + y))
 
            Next i
        Next j
    End Sub
 
End Class
0
Заблокирован
29.08.2015, 02:17  [ТС]
Petr_S, спасибо. Всё отлично получилось! Ур-ра-а!

Сейчас попробую отредактировать самостоятельно другой этюд " kap3.jpg ", самый нижний http://arbuz.uz/x_galerea1.html
Миниатюры
Перевести код с VB6, рисующий капли дождя  
0
Заблокирован
29.08.2015, 13:29  [ТС]
Цитата Сообщение от Willi2001 Посмотреть сообщение
Сейчас попробую отредактировать самостоятельно другой...
Помогите, пожалуйста. Пытался по аналогии, ничего не получается с "kap3.jpg", самый нижний http://arbuz.uz/x_galerea1.html
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Size = New Size(600, 400)
    End Sub
 
    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim r1 As Integer, r As Integer, pi As Single, x As Single, y As Single
 
        pi = 4 * Math.Atan(1)
 
        Dim DrawWidth As Integer = 2
 
        x = 450 : y = 250
        r1 = 1 : kaplya()
 
        Dim p As New Pen(Color.White, 1)
    
        For i = 10 To pi * 58 Step 0.0007
            r = r1 + i * 1.2 + 0.37 * i * Math.Sin(i * i) ^ 5
 
            p.Color = Color.FromArgb(Math.Min(Math.Abs(r), 256 * Math.Sin(r / 15)), _
                                    Math.Min(Math.Abs(255 - Math.Sin(i * 17) * 256), _
                                    Math.Min(Math.Abs(255 - i * r * 0.005))))
 
 
            e.Graphics.DrawLine(p, _
                                New Point(r * Math.Cos(i) + x - i * 0.95, r * Math.Sin(i) + y), _
                                New Point(-r * Math.Cos(-i) + x - i * 0.95, -r * Math.Sin(-i) + y))
 
        Next i
 
    End Sub
 
    Private Sub kaplya()
        Throw New NotImplementedException
    End Sub
 
End Class
Миниатюры
Перевести код с VB6, рисующий капли дождя   Перевести код с VB6, рисующий капли дождя  
0
 Аватар для Petr_S
213 / 230 / 87
Регистрация: 21.04.2013
Сообщений: 404
29.08.2015, 22:49
Лучший ответ Сообщение было отмечено Willi2001 как решение

Решение

Что-то у меня это туннель вообще не получается.

VB.NET
1
2
3
Color.FromArgb(Math.Min(Math.Abs(256 * Math.Sin(r / 15)), 255), _
                                                       Math.Min(Math.Abs(255 - Math.Sin(i * 17) * 256), 255), _
                                                       Math.Min(Math.Abs(255 - i * r * 0.005), 255))
0
Заблокирован
30.08.2015, 06:56  [ТС]
Цитата Сообщение от Petr_S Посмотреть сообщение
Что-то у меня это туннель вообще не получается.
Petr_S, спасибо огромное! В любом случае прогресс получился, первый шаг сделали удачно!
Пока маленькая заминка, результаты ниже.
Ладно. Возможно, автор картинок Скляревский что-то не договаривает, утаивает свой секрет.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Size = New Size(600, 400)
    End Sub
 
    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim r1 As Integer, r As Integer, pi As Single, x As Single, y As Single
 
        pi = 4 * Math.Atan(1)
 
        Dim DrawWidth As Integer = 2
 
        x = 450 : y = 250
        r1 = 1 : kaplya()
 
 
        Dim p As New Pen(Color.White, 1)
 
        For i = 10 To pi * 58 Step 0.0007
            r = r1 + i * 1.2 + 0.37 * i * Math.Sin(i * i) ^ 5
 
            Color.FromArgb(Math.Min(Math.Abs(256 * Math.Sin(r / 15)), 255), _
                                                        Math.Min(Math.Abs(255 - Math.Sin(i * 17) * 256), 255), _
                                                        Math.Min(Math.Abs(255 - i * r * 0.005), 255))
 
 
            e.Graphics.DrawLine(p, _
                                New Point(r * Math.Cos(i) + x - i * 0.95, r * Math.Sin(i) + y), _
                                New Point(-r * Math.Cos(-i) + x - i * 0.95, -r * Math.Sin(-i) + y))
 
        Next i
 
    End Sub
 
    Private Sub kaplya()
        Throw New NotImplementedException
    End Sub
 
End Class
Миниатюры
Перевести код с VB6, рисующий капли дождя  
0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
30.08.2015, 08:59
Willi2001, Ты не реализовал метод капля, вместо этого ты вызываешь ошибку
0
Заблокирован
30.08.2015, 09:45  [ТС]
Цитата Сообщение от edward_freedom Посмотреть сообщение
Willi2001, Ты не реализовал метод капля, вместо этого ты вызываешь ошибку
Спасибо. Если бы знал, что надо делать, то не обращался на форум.

Petr_S, посмотрите, пожалуйста. Осталось подправить детали.
Пытаюсь создать более простую картинку "kap2.jpg", третья сверху http://arbuz.uz/x_galerea1.html
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Size = New Size(700, 500)
    End Sub
 
    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim r1 As Integer, r As Integer, pi As Single, x As Single, y As Single
 
        pi = 4 * Math.Atan(1)
 
        Dim DrawWidth As Integer = 2
        Dim n As Integer = 10
 
        x = 550 : y = 220
        r1 = 1
 
 
        Dim p As New Pen(Color.White, 1)
 
        For i = -pi To pi * 50 Step 0.0015
            r = r1 + i * 2.5 + 0.1 * i * Math.Cos(55 * i) ^ 6
 
            p.Color = Color.FromArgb(Math.Min((Math.Abs(r)), 255), _
                                                        Math.Min(Math.Abs(255 - Math.Cos(i / 2) * 420), 255), _
                                                        Math.Min(Math.Abs(Math.Cos(i * 4) * 250), 255))
 
 
            e.Graphics.DrawLine(p,
                                New Point(r * Math.Cos(i) + x - i * 1, r * Math.Sin(i) + y), _
                                New Point(-r * Math.Cos(-i) + x - i * 0.95, -r * Math.Sin(-i) + y))
 
        Next i
 
    End Sub
 
End Class
Миниатюры
Перевести код с VB6, рисующий капли дождя   Перевести код с VB6, рисующий капли дождя  
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
30.08.2015, 14:20
Willi2001, На каждую задачу нужно создать отдельную тему и правильно ее оформить.
В этой теме обсуждение закрыто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.08.2015, 14:20
Помогаю со студенческими работами здесь

С какой скоростью падают капли дождя?
Дождь оставляет полосы на окнах под углом 31 градус к вертикали. С какой скоростью падают капли дождя, если скорость ветра составляет 24...

Получить изображение падающей капли дождя
( с помощью использования библиотеки модуля GRAPH)

Перевести код из VB6
Здравствуйте. Переведите пожалуйста код на vb .net Option Explicit Private Sub Form_Click() Dim x As Long, Y As Long, c As...

Перевести код с VB6 на VB .NET
Dim dig_cyr() Dim dig_cyr_4, dig_10 Private Sub Form_Load() ReDim dig_cyr(1 To 3, 0 To 9) dig_cyr(1, 0) = "" dig_cyr(1, 1)...

Перевести код из VB6 в VB 2010
Я написал приложение на VB6, но нынешние тенденции заставляют переделывать ее под новые условия, которые реализовались в VS10, а именно в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru