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

Нарисовать окружность на канве

19.11.2015, 23:24. Показов 3353. Ответов 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
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
int count=0;// Счетчик
TPoint points[3];// Массив для хранения координат
float  rx, ry, r; //  радиус окружности
float xc, yc; // Координаты центра окружности
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
 
}
 
 
void __fastcall TForm2::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
// Рисуем
Image1->Canvas->FillRect(Image1->Canvas->ClipRect);
points[count] = Point(X,Y);
if(count == 0){
    Image1->Canvas->MoveTo(X,Y);
}
 
Image1->Canvas->LineTo(X,Y);
count++;
if(count > 0){
    count = 0;
    Image1->Canvas->Ellipse(xc,yc,rx,ry);
    xc=points[0].x;
    yc=points[0].y;
    rx=points[1].x;
    ry=points[1].y;
}
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2015, 23:24
Ответы с готовыми решениями:

Нарисовать шахматную доску на канве
Как сделать шахматную доску, с помощью канвы, на весь экран, под любое разрешение ?

Как нарисовать на канве TImage бегущую пунктирную рамку?
Собственно вопрос в заголовке. Пока только одна идея - использовать TTimer. Правда не ясно как задать смещение штрихов при каждой...

Нарисовать окружность, задав радиус указателем мышки
У меня есть кнопка(стоит в режиме залипания), как при нажатии на область Image нарисовать круг на TImage,там где сейчас стоит курсор?И еще,...

2
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
20.11.2015, 08:35
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Image1->Canvas->FillRect(Image1->Canvas->ClipRect);
points[count] = Point(X,Y);
if(count == 0)
{
  Image1->Canvas->MoveTo(X,Y);
  count++;
}
else
{
 Image1->Canvas->LineTo(X,Y);
 count=0;
 xc=points[0].x;
 yc=points[0].y;
 rx=points[1].x;
 ry=points[1].y;
 r=sqrt((xc-rx)*(xc-rx)+(yc-ry)*(yc-ry));
 Image1->Canvas->Ellipse(xc-r,yc-r,xc+r,yc+r);
/* Image1->Canvas->Ellipse(rx-r,ry-r,rx+r,ry+r); // или так если, центр второй клик */
 
}
1
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 7
20.11.2015, 20:47  [ТС]
Спасибо огромное) всё работает)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.11.2015, 20:47
Помогаю со студенческими работами здесь

Нарисовать окружность, треугольник и касательные
Из вершины С треугольника ABС, как из центра, описаны концентрические окружности, к которым из точек A и B проведены касательные....

Нарисовать окружности на канве
Имеется прямоугольник с заданными координатамиimage1.Canvas.rectangle(0,0,1500,1500); В этом прямоугольнике необходимо нарисовать 2 круга,...

Нарисовать фигуру, вписанную в окружность заданного радиуса и имеющую внутреннюю вписанную окружность
Добрый день. Если есть возможность, подскажите пожалуйста код программы в Delphi для того, чтобы нарисовать фигуру , вписанную в...

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

Нарисовать на канве полярную функцию
Привет. Помогите нарисовать на канве полярную функцию r(t)=1-sin(t)\;;\;t \in \left


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru