С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
1

Построение созвездия по точкам

07.01.2018, 22:28. Просмотров 1072. Ответов 27
Метки нет (Все метки)

Добрый вечер, нужна помощь:
графическая конфигурация созвездия представлена в виде точек и линий
Необходимо построить рисунок созвездия..
Натолкните на нужную мысль
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2018, 22:28
Ответы с готовыми решениями:

Построение графика по точкам
Собственно как сделать чтоб сетка координат отображалась постоянно, а не...

Построение графика по точкам
Подскажите, как в формах вообще можно рисовать графики. Особенно интересует как...

Обход пути по точкам
Здравствуйте. Приходится сразу создавать, как по мне, сложные темы. ...

Анимированный график по точкам
Всем доброго дня!!! У меня есть файл txt в котором массив из точек (7001 чисел...

Рисование графика по точкам
Великие умы, подскажите путь решения следующей проблемы: Имеется задача:...

27
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
07.01.2018, 23:58 2
Цитата Сообщение от asopars Посмотреть сообщение
представлена в виде точек и линий
Где представлена?
0
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 00:43  [ТС] 3
Цитата Сообщение от ViterAlex Посмотреть сообщение
Где представлена?
Вообще не важно где, главное построить по этим данным рисунок созвездия
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 00:48 4
В каком формате данные?
0
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 00:50  [ТС] 5
Цитата Сообщение от ViterAlex Посмотреть сообщение
В каком формате данные?
Это не указывалось, тут все равно, но я думаю что: точкаx;точкаy
а так - как удобнее.
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 00:56 6
Ну так и рисуй. Объект Graphics. DrawLine, FillEllipse.
0
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 01:01  [ТС] 7
Цитата Сообщение от ViterAlex Посмотреть сообщение
Ну так и рисуй. Объект Graphics. DrawLine, FillEllipse.
Можете показать пример рисование точки и соединение?
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 01:17 8
Лучший ответ Сообщение было отмечено asopars как решение

Решение

Помести на форму
C#
1
2
3
4
5
6
7
8
9
10
11
12
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);
    //Начальная и конечная точки
    var start = new Point(100, 100);
    var end = new Point(200, 150);
    //Отрезок от начала до конца
    e.Graphics.DrawLine(Pens.Red, start, end);
    //Окружности диаметром 10 пикс.
    e.Graphics.FillEllipse(Brushes.Blue, start.X - 5, start.Y - 5, 10, 10);
    e.Graphics.FillEllipse(Brushes.Green, end.X - 5, end.Y - 5, 10, 10);
}
1
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 01:50  [ТС] 9
Цитата Сообщение от ViterAlex Посмотреть сообщение
Помести на форму
А можете подсказать как напечатать например 10 точек таким же образом
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 01:56 10
Циклом
0
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 02:06  [ТС] 11
ViterAlex, я это понимаю, просто проблема в том что у меня точки находятся в dictionary и каждая точка через пробел, как можно это реализовать? И что например если у меня будет не четное количество точек (т.е например не будет конечной)
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 02:10 12
asopars, а ведь я спрашивал
Цитата Сообщение от ViterAlex Посмотреть сообщение
В каком формате данные?
ты же молчишь как партизан. Почему они в словаре, да ещё в строковом представлении?
0
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 02:29  [ТС] 13
ViterAlex, потому что там содержится не только графическое описание, ещё название созвездие и описание и это все читается с файла
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 02:36 14
asopars, структура файла — государственная тайна? При чтении файла его содержимое нужно преобразовывать в объект, с которым уже можно работать. Что-нибудь вроде такого класса:
C#
1
2
3
4
5
6
public class Сonstellation
{
    public string Name;
    public string Description;
    public IDictionary<int, Point> Stars;
}
0
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 02:38  [ТС] 15
ViterAlex, уже есть похожее, потом разделить точки через split и поместить в массив?
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 02:43 16
asopars, странный у нас разговор. Вопросы задаёшь ты, а код пишу я. Мне не сложно, но покажи хоть что-то, что там у тебя происходит. Что значит
Цитата Сообщение от asopars Посмотреть сообщение
уже есть похожее
0
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 02:47  [ТС] 17
ViterAlex, просто сейчас нет доступа к пк, dictionary разбивается на: имя, описание, координаты, ну тоесть координаты я могу легко вытянуть (Stars.Coordinates)
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 02:50 18
Цитата Сообщение от asopars Посмотреть сообщение
просто сейчас нет доступа к пк
Тогда хватит теоретизировать. Как будет доступ к пк — пробуй, пиши, что не получается.
0
asopars
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 22
08.01.2018, 15:48  [ТС] 19
ViterAlex, Вот допустим у меня есть consteallationDictonary[1].Coordinates, которая содержит строку 78 81 99 22 33 66, как мне можно с этих данных нарисовать созвездие?
0
ViterAlex
6838 / 3800 / 1553
Регистрация: 11.02.2013
Сообщений: 8,348
Завершенные тесты: 3
08.01.2018, 16:12 20
asopars, в таком формате рано рисовать. Нужно парсить в координаты, затем рисовать. Распарсить можно так, если я правильно понял, что координаты идут подряд x y и являются целыми числами.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static private List<Point> GetPoints(string text)
{
    var result = new List<Point>();
    try
    {
        Regex regexObj = new Regex(@"(\d+)\s(\d+)\s", RegexOptions.IgnoreCase);
        Match matchResult = regexObj.Match(text);
        while (matchResult.Success)
        {
            var x = int.Parse(matchResult.Groups[1].Value);
            var y = int.Parse(matchResult.Groups[2].Value);
            result.Add(new Point(x, y));
            matchResult = matchResult.NextMatch();
        }
    }
    catch (ArgumentException ex)
    {
        throw;
    }
    return result.Count > 0 ? result : null;
}
А уже этот список можно перебирать, рисовать звёзды. А вместо отдельных линий рисовать многоугольник DrawPolygon

Добавлено через 8 минут
asopars, при такой организации словаря, где ключом является целое число, а значением строка, где хранятся названия и описание?
1
08.01.2018, 16:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2018, 16:12

Как чертить линии по точкам?
Была создана функция для черчения линий между двумя выбранными вручную точками...

Визуализация шестигранной решетки по точкам
Необходимо визуализировать решетку приведенную на рисунке с помощь точек (что...

Получить график по заданным точкам
private void button1_Click(object sender, EventArgs e) { ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru