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

Элементы компьютерной графики

06.05.2014, 16:18. Показов 1765. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны восемь действительных положительных чисел, задающие число дней в году, в которых преобладало соответственно северное, северо-восточное, восточное, юго-восточное, южное, юго-западное, западное и северо-западное направление ветра. Построить розу ветров (рис). Заданные числа разместить во внешнем файле (последовательный доступ).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2014, 16:18
Ответы с готовыми решениями:

: Элементы интерактивной компьютерной 3D-графики
30. Прочитать из файла заданного формата и построить на экране каркас многогранника. Организовать вращение вокруг координатных осей с...

Где обучают компьютерной графики в Новосибирске?
Хочу пойти на курсы компьютерной графики, но не знаю куда.. Может кто знает, где есть курсы повышения квалификации?

Выбор видеокарты для видеомонтажа и компьютерной графики
Мне нужна карта в пределах 4.000р для видеомонтажа и работы со спецэффектами. Подскажите какую лучше приобрести? Хорошая ли вот эта...

5
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
06.05.2014, 16:54
Точно нужно на VB6 ?

А то у меня похожая работа есть на VB.NET
Миниатюры
Элементы компьютерной графики  
0
1 / 1 / 1
Регистрация: 07.12.2013
Сообщений: 57
06.05.2014, 17:02  [ТС]
Мне нужна простая программа в универ)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
06.05.2014, 18:51
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Сложновато получилось.

Может у кого будет вариант попроще?...

Visual Basic
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
58
59
60
61
62
63
64
65
66
67
68
Option Explicit
Dim Wind(1 To 8) As Integer
Const PI As Single = 3.14
Private Sub Command1_Click()
    GetData
    BuildRose
End Sub
 
Private Sub GetData()
    Dim ff As Integer, i As Integer, s As String
    ff = FreeFile
    Open App.Path & "/Data.txt" For Input As #ff
       For i = 1 To 8
           Line Input #ff, s
           Wind(i) = Int(Split(s)(0))
       Next i
    Close #ff
End Sub
 
Private Sub BuildRose()
    Dim i As Single, Sk As Single
    Dim a As Single, b As Single, m As Integer
    Picture1.Cls
    Sk = 150: m = 130: Picture1.Scale (-Sk, Sk)-(Sk, -Sk)
    Picture1.DrawWidth = 1: Picture1.FontBold = True: Picture1.FontSize = 12
      
    a = PI * (1 / 2)
    b = PI * (3 / 2)
    Picture1.CurrentX = Cos(a) * m: Picture1.CurrentY = Sin(a) * m: Picture1.Print "С"
    Picture1.Line ((Cos(a)) * m, (Sin(a)) * m)-((Cos(b) * m), (Sin(b) * m)), RGB(0, 0, 255)
    
    'Picture1.Line ((Cos(PI * (1 / 2))) * Wind(1), (Sin(PI * (1 / 2))) * Wind(1))-((Cos(PI * (1 / 4))) * Wind(2), (Sin(PI * (1 / 4))) * Wind(2)), vbRed
    
    Picture1.Print "Ю"
    a = PI: b = 0
    Picture1.CurrentX = Cos(a) * m: Picture1.CurrentY = Sin(a) * m: Picture1.Print "З"
    Picture1.Line ((Cos(a)) * m, (Sin(a)) * m)-((Cos(b) * m), (Sin(b) * m)), RGB(0, 0, 255)
    Picture1.Print "В"
        
    a = PI * (1 / 4): b = PI * (5 / 4)
    Picture1.CurrentX = Cos(a) * m: Picture1.CurrentY = Sin(a) * m: Picture1.Print "С-В"
    Picture1.Line ((Cos(a)) * m, (Sin(a)) * m)-((Cos(b) * m), (Sin(b) * m)), RGB(0, 0, 255)
    Picture1.Print "Ю-З"
    
    a = PI * (3 / 4): b = PI * (7 / 4)
    Picture1.CurrentX = Cos(a) * m: Picture1.CurrentY = Sin(a) * m: Picture1.Print "С-З"
    Picture1.Line ((Cos(a)) * m, (Sin(a)) * m)-((Cos(b) * m), (Sin(b) * m)), RGB(0, 0, 255)
    Picture1.Print "Ю-В"
 
    Picture1.DrawWidth = 3
    'северный  северо-восточный
    Picture1.Line ((Cos(PI * (1 / 2))) * Wind(1), (Sin(PI * (1 / 2))) * Wind(1))-((Cos(PI * (1 / 4))) * Wind(2), (Sin(PI * (1 / 4))) * Wind(2)), vbRed
    'северный-восточный   восточный
    Picture1.Line ((Cos(PI * (1 / 4))) * Wind(2), (Sin(PI * (1 / 4))) * Wind(2))-((Cos(0) * Wind(3)), (Sin(0) * Wind(3))), vbRed
    'восточный   юго-восточный
    Picture1.Line ((Cos(0)) * Wind(3), (Sin(0)) * Wind(3))-((Cos(PI * (7 / 4)) * Wind(4)), (Sin(PI * (7 / 4)) * Wind(4))), vbRed
    'юго-восточный южный
    Picture1.Line ((Cos(PI * (7 / 4))) * Wind(4), (Sin(PI * (7 / 4))) * Wind(4))-((Cos(PI * (3 / 2)) * Wind(5)), (Sin(PI * (3 / 2)) * Wind(5))), vbRed
    'южный юго-западный
    Picture1.Line ((Cos(PI * (3 / 2))) * Wind(5), (Sin(PI * (3 / 2))) * Wind(5))-((Cos(PI * (5 / 4)) * Wind(6)), (Sin(PI * (5 / 4)) * Wind(6))), vbRed
    'юго-западный западный
    Picture1.Line ((Cos(PI * (5 / 4))) * Wind(6), (Sin(PI * (5 / 4))) * Wind(6))-((Cos(PI * (1)) * Wind(7)), (Sin(PI * (1)) * Wind(7))), vbRed
    'западный северо-западный
    Picture1.Line ((Cos(PI * (1))) * Wind(7), (Sin(PI * (1))) * Wind(7))-((Cos(PI * (3 / 4)) * Wind(8)), (Sin(PI * (3 / 4)) * Wind(8))), vbRed
    'северо-западный северный
    Picture1.Line ((Cos(PI * (3 / 4))) * Wind(8), (Sin(PI * (3 / 4))) * Wind(8))-((Cos(PI * (1 / 2)) * Wind(1)), (Sin(PI * (1 / 2)) * Wind(1))), vbRed
 
End Sub
Миниатюры
Элементы компьютерной графики  
Вложения
Тип файла: rar Роза ветров.rar (2.0 Кб, 8 просмотров)
3
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
06.05.2014, 21:02
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Цитата Сообщение от SoftIce Посмотреть сообщение
Может у кого будет вариант попроще?
У меня кода меньше получилось, картинка по образцу.
Visual Basic
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
Private Sub Form_Load()
Dim v#(7), i&, f%, mx#, s$, bc&, s2#
s2 = 1 / Sqr(2)
bc = BackColor
Scale (-1.2, 1.2)-(1.2, -1.2)
  'считывание массива и поиск максимума
f = FreeFile
Open App.Path & "\Data.txt" For Input As f
For i = i To 7
  Line Input #f, s
  v(i) = Val(s)
  If v(i) > mx Then mx = v(i)
Next
Close f
  'нормализация массива
For i = 0 To 7: v(i) = v(i) / mx: Next
  'оси
Line (-1, 0)-(1, 0)
Line (0, -1)-(0, 1)
Line -(-0.03, 0.85)
Line (0, 1)-(0.03, 0.85)
Line (-s2, -s2)-(s2, s2)
Line (-s2, s2)-(s2, -s2)
  'подписи осей
PSet (-1, -0.03), bc: Print "З"
PSet (0.95, -0.03), bc: Print "В"
PSet (0.03, 1), bc: Print "С"
PSet (0.03, -0.92), bc: Print "Ю"
DrawWidth = 2: ForeColor = vbRed
  'рисование розы
PSet (0, v(0))                
Line -(s2 * v(1), s2 * v(1))  'СВ
Line -(v(2), 0)               
Line -(s2 * v(3), -s2 * v(3)) 'ЮВ
Line -(0, -v(4))              
Line -(-s2 * v(5), -s2 * v(5)) 'ЮЗ
Line -(-v(6), 0)              
Line -(-s2 * v(7), s2 * v(7)) 'СЗ
Line -(0, v(0))               
End Sub
Миниатюры
Элементы компьютерной графики  
3
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
06.05.2014, 21:27
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Перенес арифметику из рисования розы в цикл, теперь код прозрачнее
Visual Basic
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
Private Sub Form_Load()
Dim v#(7), i&, f%, mx#, s$, bc&, s2#
s2 = 1 / Sqr(2)
bc = BackColor
Scale (-1.2, 1.2)-(1.2, -1.2)
  'считывание массива и поиск максимума
f = FreeFile
Open App.Path & "\Data.txt" For Input As f
For i = i To 7
  Line Input #f, s
  v(i) = Val(s)
  If v(i) > mx Then mx = v(i)
Next
Close f
  'нормализация массива и масштабирование диагональных элементов
For i = 0 To 7
  v(i) = v(i) / mx * 0.95
  If i Mod 2 Then v(i) = v(i) * s2
Next
  'оси
Line (-1, 0)-(1, 0)
Line (0, -1)-(0, 1)
Line -(-0.03, 0.85)
Line (0, 1)-(0.03, 0.85)
Line (-s2, -s2)-(s2, s2)
Line (-s2, s2)-(s2, -s2)
  'подписи осей
PSet (-1, -0.03), bc:   Print "З"
PSet (0.95, -0.03), bc: Print "В"
PSet (0.03, 1), bc:     Print "С"
PSet (0.03, -0.92), bc: Print "Ю"
  'рисование розы
DrawWidth = 2: ForeColor = vbRed
PSet (0, v(0))        
Line -(v(1), v(1))    'СВ
Line -(v(2), 0)       
Line -(v(3), -v(3))   'ЮВ
Line -(0, -v(4))      
Line -(-v(5), -v(5))  'ЮЗ
Line -(-v(6), 0)      
Line -(-v(7), v(7))   'СЗ
Line -(0, v(0))       
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2014, 21:27
Помогаю со студенческими работами здесь

DirectX, openGl или создание компьютерной графики
Добрый вечер уважаемые читатели форума. Как я уже говорил ранее я закончил с теорией языка C# (покрайней мере базовой теорией принципов ооп...

О роли компьютерной графики во всех областях, особенно в образовании
О роли компьютерной графики во всех областях, особенно в образовании. Геометрические фигуры: что это? для чего их изображать (на ...

Написать курсовую работу на тему: Основы компьютерной графики
Помогите пожалуйста написать курсовую работу по Технологии программирования на тему: Основы компьютерной графики. Основные понятия....

Дипломная работа "Использование алгоритмов компьютерной графики на Web странице HTML 5" нужна программа
дипломная работа "Использование алгоритмов компьютерной графики на Web странице HTML 5" нужна программа на эту тему помогите

Элементы компьютерной анимации
Частица (от заданной начальной точки) совершает хаотичное движение, двигаясь в случайном направлении на случайное расстояние (в пределах...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru