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

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

06.05.2014, 16:18. Показов 1799. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru