Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 23.09.2016
Сообщений: 4

Графический редактор, рисование эллипса

02.10.2016, 04:44. Показов 3141. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как нарисовать эллипс не в определенной точке и с определенным радиусом, а именно как в обычном Paint
зажимая в одной точке мышку и растягивая круг до необходимого размера

у меня, к сожалению, получился только первый вариант

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (((TSpeedButton *)Sender)->Down)
  BitMap->Assign(Image3->Picture);
 RBegin = false;
 RDrag = false;
 REnd = false;
if((Sender == SBPen)||(Sender == SBLine))
  Image3->Cursor = crDraw;
else if(Sender == SBBrush)
  Image3->Cursor = crFill;
else if(Sender == SBErase)
  Image3->Cursor = crErase;
else if(Sender == SBColor)
  Image3->Cursor = crDefault;
else Image3->Cursor = crPlus;
  Image3->Canvas->Ellipse(R.Left,R.Top,R.Right,R.Bottom);
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.10.2016, 04:44
Ответы с готовыми решениями:

Динамическое рисование эллипса
Пытаюсь сделать динемическое рисование элипса но при движение мышью предыдущие элипсы не стираются...как исправить?

Графический редактор
Всем привет! Ув. форумчане, срочно нужна ваша помощь! Нужно здать лабу, а я винч форматнул, и теперя ее нет. Лаба Графический редактор в...

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

3
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
02.10.2016, 07:08
Лучший ответ Сообщение было отмечено уцвц как решение

Решение

Так и делай, как в Paint. При нажатии левой кнопки мыши (ЛКМ) запоминай позицию клика, при дальнейшем перемещении с зажатой ЛКМ рисуй (временный) эллипс, при отпускании ЛКМ переставай рисовать, оставляя последний нарисованный эллипс.
1
0 / 0 / 0
Регистрация: 23.09.2016
Сообщений: 4
02.10.2016, 10:18  [ТС]
в общем, может кому понадобится в дальнейшем, в Image1MouseMove пишем
C++
1
Image3->Canvas-> Ellipse(Rect(X, Y, x, y)
в Image3MouseDown
C++
1
2
3
x=X;
    y=Y;
    Clipboard()->Assign(Image3->Picture);
в Image3MouseUp
C++
1
2
3
4
5
i=0;
if(k==14){
    x2=X;
    y2=Y;
    Clipboard()->Assign(Image3->Picture);
работает все только при наличии бубна и танцев, но в моем случае работает, это главное.

gunslinger, спасибо за подсказку
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
02.10.2016, 16:34
Можно так сделать:
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
TPoint a;
bool is_left_mouse_down = 0;
 
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
  if (Button == mbLeft)
  {
    is_left_mouse_down = 1;
    a.x = X;
    a.y = Y;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
  if (Button == mbLeft)
  {
    is_left_mouse_down = 0;
    Image1->Canvas->Ellipse(a.x, a.y, X, Y);
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
  if (is_left_mouse_down)
    Image1->Canvas->Ellipse(a.x, a.y, X, Y);
}
Только нужно "затирать" временные эллипсы при MouseMove.
Либо вообще их не рисовать, но тогда результат будет виден лишь после отпускания ЛКМ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.10.2016, 16:34
Помогаю со студенческими работами здесь

Графический редактор
Доброго времени суток. Подскажите пожалуйста, почему графический редактор после компиляции выдает 2 черные линии в форме буквы X? Где может...

Графический фото редактор
помогите составить простенький фото редактор на c++ builder который может поворачивать изображение и делать его негативным и черно белым +...

Простейший графический редактор
Ребята, просьба помочь советом и наставлением. Задали мне тему курсовой: построение графического редактора типа паинт, но только ещё с...

свой графический редактор
как реализовать событие при пи щелчке по кнопке hButton = CreateWindowExA(NULL,"BUTTON","Button1",WS_CHILD|WS_VISIBLE|BS_ICON |...

Графический редактор C++ Builder
Здраствуйте. У меня вот такое задание :Написать программу графического редактора, который должен обладать следующими функциями: ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru