Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 18

Рисование точек графика нажатием мыши

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

Студворк — интернет-сервис помощи студентам
Доброго вемени суток. Помогите пожалуйста. Мне надо , чтобя нажимая на график который у Меня находиться в PictureBox(график Мне удалось построить,котяво конечно) появляись точки,при нажатии. Которые определяються в dataGridView. Одна точка(нажатия) ,две координаты. Помогите пожалуйста. Очень надо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2012, 10:05
Ответы с готовыми решениями:

Рисование массива точек при движении курсора мыши
я рисую в форме кое чо при нажатой левой конпке мыши должен выводиться массив точек private void Form3_MouseMove(object sender,...

Рисование по канве нажатием любой кнопки мыши
Получаетсья сделать только для правой кнопки. А как сделать чтобы можно было и правой и левой? Вот код unit Unit1; interface...

Рисование линий из центра экрана нажатием левой кнопкой мыши
Здравствуйте! Начала разбирать программу, рисующую линии нажатием левой кнопкой мыши из центра "окошка". Не очень понимаю как...

10
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
09.11.2012, 13:11
событие onClick на PictureBox вам не подходит?

Добавлено через 33 секунды
или в чем проблема? не можете нарисовать точки по координатам или привязать отрисовку к нажатию?
1
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 18
09.11.2012, 14:03  [ТС]
Дело вот в чем!!! Я абсалютно не понимаю код!!! Я только учусь.... Но как то не удачно.

Добавлено через 2 минуты
Пожалуйста, пожалуйста!! Помогите...

Добавлено через 11 секунд
Пожалуйста, пожалуйста!! Помогите...
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
09.11.2012, 14:17
Ну так это, код в студию ...
1
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 18
09.11.2012, 14:23  [ТС]
Мне все ровно. Можно и почитать. Я готова на все!!! Главное , понять !! событие OnClick Я посмотрела.
C#
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
  private void graf_Paint(object sender, PaintEventArgs e)
        {
            
 
            const string Graf = "Тыкаем на график";
            SizeF messageSize = e.Graphics. MeasureString(Graf, Font);
            PointF p= new PointF ((ClientSize .Width - messageSize .Width )/10,
              (ClientSize.Height   - messageSize .Height )/10);
            e.Graphics .DrawString (Graf ,Font ,
                SystemBrushes .WindowText ,p);
 
        }
 
        private void graf_Resize(object sender, EventArgs e)
        {
            Invalidate();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            //Инициализация объекта Graphics
            Graphics g = graf.CreateGraphics();             
            //Инициализация объекта "перо", цвет - черный
            Pen BlackPen;
            BlackPen = new Pen(Color.Red);
            //Определение координат центра
            Point Centr;
            int cx, cy;
            cx = ClientSize.Width; //Значение ширины
            cy = ClientSize.Height; ////Значение высоты
            Centr = new Point(cx / 2, cy / 2);
            //Ось Y
            Point KY1, KY2;
            KY1 = new Point(cx / 14, 0);
            KY2 = new Point(cx / 14, cy);
            g.DrawLine(BlackPen, KY1, KY2);
            //Прорисовка осей
            //Ось X
            Point KX1, KX2;
            KX1 = new Point(0, cy / 2);
            KX2 = new Point(cx, cy / 2);
            g.DrawLine(BlackPen, KX1, KX2);
Вот это Я осилила. Мне вот интересно. Сильно касой код??? Или как))) И это наверное очень легко?? Вообщем ... Главное Я старалась!!
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
09.11.2012, 14:33
код работает - остальное тонкости ... ну лан, а задача-то в чем? ткнуть на график и в этом месте получить точку? или ткнуть на график и нарисовать на графике заранее где-то вычисленную точку?
1
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 18
09.11.2012, 14:39  [ТС]
Задача ткнуть на график получить нарисованную точку которая одновременна отабрациться в dataGridView. кстати тыкаем Мы много раз . потом нажимаем на кнопку и о чудо в Нашей таблицы появляеться третья колонка которая сортитует значения в 2 класс или больше это мы тоже задаем. Это система исскуственного интелекта. Я поняла это алгорит Форель-2. Так вот.Это вся задача. А Мне надо хотябы тыкать научиться)))
0
310 / 206 / 44
Регистрация: 15.02.2012
Сообщений: 605
09.11.2012, 16:19
вешаете на picturebox событие onClick, в нем снимаете текущие координаты курсора (относительно то ли угла формы, то ли угла экрана - не помню точно), далее нехитрыми арифметическими операциями эти координаты приводите к своей системе координат и рисуете точку

Добавлено через 1 минуту
Как получить координаты курсора
1
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
09.11.2012, 16:39

Не по теме:


C#
1
2
3
//Инициализация объекта "перо", цвет - черный
            Pen BlackPen;
            BlackPen = new Pen(Color.Red);



Добавлено через 26 секунд

Не по теме:

у всех бы такие чёрные перья были))



Добавлено через 5 минут
C#
1
2
3
4
5
6
7
      
 private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{      
Graphics graphics = pictureBox1.CreateGraphics();
Pen grid = new Pen(new SolidBrush(Color.Red), 2f);
graphics.DrawEllipse(grid,new Rectangle(e.X-1,e.Y-1,2,2));
}
1
 Аватар для C17H19NO3
218 / 212 / 63
Регистрация: 17.04.2012
Сообщений: 382
09.11.2012, 17:53
"которая сортитует значения в 2 класс или больше это мы тоже задаем." Мне не совсем понятно как должна проходить сортировка и по каким критериямб и что значит "в 2 класс".

C#
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
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        int rowsCount = 0;
        Graphics gr;    
 
        private void Form1_Load(object sender, EventArgs e)
        {           
            pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            gr = Graphics.FromImage(pictureBox1.Image);
            //добавляем колонку в дата грид
            dataGridView1.Columns.Add("pointPosition", "Point Position");
            //пишем заголовок графика
            gr.DrawString("Created Grephic", new Font("Arial", 30f, FontStyle.Bold), Brushes.Green, 5, 10);
        }
 
        private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {
            //создаем строку грида
            dataGridView1.Rows.Add(1);
            //положения курсора на pictureBox1
            Point pointLocation = pictureBox1.PointToClient(Cursor.Position);
           //рисуем точку
            gr.FillEllipse(Brushes.Red, pointLocation.X - 5, pointLocation.Y - 5, 10,10);
            //перерисовуем pictureBox1, чтоб точки не затирались
            pictureBox1.Refresh();
            //вставляем координаты курсора в датагрид
            dataGridView1[0, rowsCount].Value = pointLocation.ToString();
            //или такой стиль
           // dataGridView1[0, rowsCount].Value = pointLocation.X + "; " + pointLocation.Y;
 
            //глобальная переменная. шаг для запись данных в следующую строку грида
            rowsCount++;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            //создание новой колонки для сортировки
            dataGridView1.Columns.Add("pointPosition", "Point Position");
        }
    }
}
Вложения
Тип файла: rar WindowsFormsApplication1.rar (37.8 Кб, 49 просмотров)
2
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 18
11.11.2012, 13:55  [ТС]
Дело вот в чем!! Ты тыкаешь на график. Рисуется точка. Координаты которой определяются в гриде . А класс 2. Эт Я не правильно выразилась. В два класса сортируются данные которые Мы получаем, координаты точек которые сортируем по приближенности, вот. И пишем первый класс второй класс уже в отсортированных точках!! !!!! Всем огромное спасибо !!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.11.2012, 13:55
Помогаю со студенческими работами здесь

Работа с мышью: вывести квадрат нажатием левой кнопки мыши и спрятать его нажатием правой кнопки мыши
Ребят обьясните как вывести квадрат левым нажатием кнопки мыши и спрятав его правым нажатием кнопки мыши. Вот набросок кода ...

Нажатием левой кнопки мыши выбирать и запоминать цвет, при нажатии правой кнопки мыши - устанавливать выбранный цвет
Люди добрые, киньте какой-нибудь рабочий .asm для masm, похожий на решение следующей задачи, а то мне год надо зубрить чтобы написать...

Как нарисовать много точек, если в классе Graphics рисование точек не предусмотрено вообще?
Делаю свой граф. редактор. В нем нужно линии строить так, чтобы они состояли из точек. DrawPoint в классе Graphics нет, как быть? если...

Передвижение фигуры с нажатием мыши
Подскажите как сделать так, ятоб данная фигура передвигалась на то место где нажали мышкой.Задачи GraphABC.

Прервать цикл нажатием кнопки мыши
Есть мышь G700 которая поддерживает скрипты на Lua И в процессе написания скрипта я столкнулся с тем что команды мыши внутри цикла не...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru