Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
1

Необходимо на экране нарисовать линию между двумя точками

11.12.2013, 10:05. Показов 3095. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Столкнулся с проблемой. Необходимо на экране нарисовать линию между двумя точками. Допустим между точками 1130 пикселей что соответствует 750 дням. тогда выходит что на один день приходится ~ 1.506 пиксель. Но! их вроде как делить нельзя? ВОПРОС! как поступить в этой ситуации? как нарисовать линию, соответствующей 277 дням?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2013, 10:05
Ответы с готовыми решениями:

Как в цикле нарисовать новую линию между двумя объектами
Имеется процедура выполняющая выставление кнопок в TabPage и все это в цикле. Dim Con As New...

Построить линию между двумя точками географических координат графически
Имея широту и долготу двух точек, можно ли каким-то образом изобразить графически как она будет...

Найти наименьшее расстояние между точками и нарисовать линию
Здравствуйте. Вообщем такая проблема. Дано задание найти наименьшее расстояние между точками и...

Нарисовать линию точками
Нужно нарисовать линию канвасом из центра до любой точки, допустим центр = (500, 500), второй конец...

20
195 / 115 / 30
Регистрация: 05.08.2013
Сообщений: 491
11.12.2013, 12:56 2
округлить
1
1302 / 508 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
11.12.2013, 20:43 3
Цитата Сообщение от MACTEP434 Посмотреть сообщение
Допустим между точками 1130 пикселей что соответствует 750 дням
а почему расстояние в пикселях меряете? Мне кажется графика не в пикселях меряется, а в чем то другом, не помню в чем. Вот в стандартных ед. измерения и считать нужно
0
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
12.12.2013, 13:23  [ТС] 4
Цитата Сообщение от dr_Morro Посмотреть сообщение
округлить
а если будет 2260 дней? округлять то некуда)
0
195 / 115 / 30
Регистрация: 05.08.2013
Сообщений: 491
12.12.2013, 13:30 5
ну дык. берем допустим 5000 дней приравниваем к 1000 пикселей. получаем, что 1 день равен 0.2 пикселя.
Естественно такой точности нам не добиться. тогда 5 дней - 1 писксель, верно? т.е. 5 дней это минимальная единица отсчета при таком масштабе шкалы. 2260 дней будут равны 2260*0.2=452 пикселя. и т. д. все зависит от масштаба. все равно точности до одного дня не добиться. иначе нужен масштаб 1:1 Вот поэтому и округление
1
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
12.12.2013, 14:13  [ТС] 6
Может можно как-то масштабировать картинку? Например создавать её и сохранять в PNG. А затем выводить на экран??
0
195 / 115 / 30
Регистрация: 05.08.2013
Сообщений: 491
12.12.2013, 14:21 7
ну допустим. только смысл? картинка все равно будет масштабироваться. и визуально не будет никакой разницы. только геморроя побольше.
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.12.2013, 14:28 8
Зачем делать вычисления на основе картинки? Данные и их обработка должны быть отдельно, а визуализация - отдельно
0
dr_Morro
12.12.2013, 14:30
  #9

Не по теме:

Цитата Сообщение от ViterAlex Посмотреть сообщение
Данные и их обработка должны быть отдельно, а визуализация - отдельно
Вот! Я об этом! :)

0
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
12.12.2013, 14:33  [ТС] 10
Цитата Сообщение от ViterAlex Посмотреть сообщение
Зачем делать вычисления на основе картинки? Данные и их обработка должны быть отдельно, а визуализация - отдельно
Всё правильно! но суть в том что в итоге будут судить по протекающим процессам именно по этой картинке

Добавлено через 23 секунды
не хотит народ смотреть на цифры
0
195 / 115 / 30
Регистрация: 05.08.2013
Сообщений: 491
12.12.2013, 14:36 11
Цитата Сообщение от MACTEP434 Посмотреть сообщение
не хотит народ смотреть на цифры
Ну дык пусть смотрят на картинку. Просто нет смысла каждый раз скидывать PNG, если её можно сгенерировать в реальном времени. Все равно визуально никто не будет рассматиривать всё попиксельно. Можно вывести шкалу или подписи + визуализацию. и линия будет показывать "шоп глаз видел", а циферки - "шоп моск понимал"...
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.12.2013, 14:37 12
MACTEP434, т.е. о двухлетнем периоде будут судить по картинке в 1000 пикселей? И делать выводы? Как-то это очень по-советски
0
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
12.12.2013, 14:43  [ТС] 13
Цитата Сообщение от ViterAlex Посмотреть сообщение
MACTEP434, т.е. о двухлетнем периоде будут судить по картинке в 1000 пикселей? И делать выводы? Как-то это очень по-советски
2х летний период это было для примера. в основном 6-8 месяцев. просто вот у меня монитор с разрешением экрана в 1280 точке. у кого-то в 1024(хотя монитор может большее) у кого-то FULLHD. Попробуй ка подбери масштаб

Добавлено через 1 минуту
Цитата Сообщение от dr_Morro Посмотреть сообщение
Ну дык пусть смотрят на картинку. Просто нет смысла каждый раз скидывать PNG, если её можно сгенерировать в реальном времени. Все равно визуально никто не будет рассматиривать всё попиксельно. Можно вывести шкалу или подписи + визуализацию. и линия будет показывать "шоп глаз видел", а циферки - "шоп моск понимал"...
не не не.. я рисую по средствам System.Drawing.Graphics
Я имел ввиду что не сразу выводить на форму все линии.. а сначало автоматом собирать картинку в кэше, сохранять её в TEMP а потом в масштабе показывать на форме?
0
195 / 115 / 30
Регистрация: 05.08.2013
Сообщений: 491
12.12.2013, 14:49 14
Цитата Сообщение от MACTEP434 Посмотреть сообщение
Попробуй ка подбери масштаб
а не надо подбирать. пусть прога сама вычисляет.

Добавлено через 6 минут
Цитата Сообщение от MACTEP434 Посмотреть сообщение
а потом в масштабе показывать на форме
Пусть будет так.

Не по теме:

А то уже чат получается. и нас ща модераторы разугают...

0
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
12.12.2013, 14:51  [ТС] 15
Цитата Сообщение от dr_Morro Посмотреть сообщение
а не надо подбирать. пусть прога сама вычисляет.
так то оно так..

вот принцип моего вычисления:

в проекте может быть несколько промежуточных точек

1) узнаём количество дней в проекте
2) узнаём доступное количество точек
3) вычисляем сколько точек приходиться на день
4) вычисляем кол-во точек от начальной точки проекта до следующей промежуточной

и вот тут появляется маленький облом!

допустим:

на экране доступно 100 точек
имеем 120 дней
делим точки на дни получаем = 0,83
т.к пикселей не может быть дробно, в переменную записывается число 1
120 умножаем на 1 = 120
что выходит за пределы экрана.
0
195 / 115 / 30
Регистрация: 05.08.2013
Сообщений: 491
12.12.2013, 14:53 16
если 120*0.83 = 99.6 <--- округлять уже конечный результат!
1
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.12.2013, 14:56 17
Не важно сколько точек на экране. Создавай битмап нужного размера, туда рисуй, а затем выводи на форму с масштабом
1
Заблокирован
12.12.2013, 16:38 18
Цитата Сообщение от dr_Morro Посмотреть сообщение
А то уже чат получается. и нас ща модераторы разугают...

Не по теме:

Все нормально.:) Главное чтоб проблема решилась.

0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
13.12.2013, 13:36 19
Цитата Сообщение от ViterAlex Посмотреть сообщение
Не важно сколько точек на экране. Создавай битмап нужного размера, туда рисуй, а затем выводи на форму с масштабом
Так конечно можно, но картинка от этого лучше не станет. Лучше всё-таки учитывать.

Цитата Сообщение от MACTEP434 Посмотреть сообщение
тогда выходит что на один день приходится ~ 1.506 пиксель. Но! их вроде как делить нельзя?
Можно же. Есть методы, принимающие в качестве аргумента Single. Всё само до int'ов округлится.
0
12 / 12 / 0
Регистрация: 22.02.2013
Сообщений: 162
14.12.2013, 07:03  [ТС] 20
Цитата Сообщение от Qwertiy Посмотреть сообщение
Можно же. Есть методы, принимающие в качестве аргумента Single. Всё само до int'ов округлится.
Это какие если не секрет?
0
14.12.2013, 07:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2013, 07:03
Помогаю со студенческими работами здесь

Разработать программу позволяющюю рисовать линию между точками
народ хелп, уменя экзамен, а я не знаю 1 задачу. Разработать программу позволяющюю рисовать линию...

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

Расстояние между двумя точками
Нужно в методе Distance одной строкой посчтитать расстояние между точками, ночто-то у меня не...

Расстояние между двумя точками
две точки заданы на плоскости своими координатами, которые могут быть как декартовыми, так и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru