Как изменить радиус окружности мышью
Перейти к содержимому

Как изменить радиус окружности мышью

Радиус круга и позиция курсора мышки

введите сюда описание изображения

Есть серый круг. Нужно отловить mousemove в радиусе 5–10px от него, как показано на картинке зеленой окружностью.

Пытаюсь сделать так, чтобы круг плавно «уходил» от позиции курсора: если я вожу курсором поверх круга, он плавно уходит вниз в зависимости от позиции курсора, если вести курсор справа налево, то круг должен уходить не влево, а быть немного «живым» – вниз, направо и т.д.

Подскажите, как это сделать?

Как я понял задачу — круг должен убегать в противоположную от курсора сторону.

Вам нужна разница координат середины круга и курсора.

Это — вектор (DX, DY) . Условимся, что он исходит из центра круга до курсора:

DX = DXm-DXc , DY = DYm-DYc (Индексы с — центр круга, m — мышь).

Вам нужно из этого вектора получить вектор направления единичной длины — для этого обе координаты вектора делите на длину (модуль) вектора L = sqr(DX**2+DY**2) ( ** — возведение в квадрат). Дальше, чтобы двигаться в направлении обратном направлению на курсор, вам нужен обратный вектор, т.е. обе координаты нужно взять с минусом. Потом умножаете обе координаты вектора на нужную скорость убегания и по таймеру прибавляете соответствующие координаты вектора к соответствующим координатам круга, пока курсор находится в заданной области.

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

Как нарисовать круг в Автокаде.

Любой чертеж может быть разбит на простейшие элементы, примитивы. В этом уроке мы познакомимся с примитивом, который называется «Круг».

И рассмотрим следующие вопросы:

Как запустить команду круг?

Команду « Круг » можно запустить несколькими способами:

С клавиатуры.

Набираем на клавиатуре КРУГ (большими или маленькими буквами – это не важно) и нажимаем < Enter >.

Причем в последних версия Автокад достаточно набрать только К .

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

В нашем случаи набираем К и нажимаем < Enter >. См. Рис. 1.

Как нарисовать круг в Автокаде

Рис. 1. Запуск команды КРУГ с клавиатуры

Также вместо команды КРУГ можно набрать _Circle .

Команда Circle работает в Английской версии. Английского название с нижним подчеркиванием _Circle , будет работать во всех версиях.

С ленты при помощи мыши.

На ленте перейдите на вкладку « Главная ». Поместите указатель мыши на команду КРУГ и щелкните левой кнопкой мыши См. Рис. 2

Как нарисовать круг в Автокаде

Рис. 2. Запуск команды КРУГ с помощью мыши.

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

Как нарисовать круг в Автокаде

Рис. 3. Подробная подсказка.

Большинство пользователей используют второй способом.

Построение круга по центру и радиусу.

После того, как мы запустили команду, в командной строке появиться запрос: « КРУГ Центр круга или [3Т/2Т/ККР (кас кас радиус)]: », который просит нас задать центр круга.

Самый простой способ задание центр круга – это пометить курсор в рабочем поле Автокад в нужное место и нажать на левую кнопку мыши. При выборе точки, можно ориентироваться на координаты в левом нижнем углу. См . Рис. 4.

Как нарисовать круг в Автокаде

Рис. 4. Координаты положения курсора.

После задания центра Круга, Автокад выдаст следующий запрос: « КРУГ Радиус круга или [Диаметр]: ». См. Рис. 5.

Как нарисовать круг в Автокаде

Рис. 5. Запрос радиуса круга.

Это означает, что либо нужно задать радиус круга, либо выбрать опцию, указанную в квадратных скобках.

В качестве опции Автокад предлагает команду [ Диаметр ].

Также, здесь показано значение радиуса по умолчанию < 200.0 > (это радиус последнего построенного круга).

Что выбрать значение по умолчанию, достаточно нажать < Enter >.

Чтобы построить круг с другим радиусом, (Например с радиусом 150) набираем на клавиатуре 150 и нажимаем < Enter >. Программа построит круг с радиусом 150 . См. Рис. 6.

Как нарисовать круг в Автокаде

Рис. 6. Круг с радиусом 150.

Построение круга по центру и диаметру.

Если Вам удобнее строить круг не по радиусу, а по диаметру, то можно выбрать опцию [ Диаметр ].

Для того, чтобы выбрать опцию [ Диаметр ], нужно щелкнуть по ней левой кнопкой мыши или набрать на клавиатуре « Д » (или « _d ») и нажать < Enter >.

Программа выдаст запрос: « Диаметр круга :»

Введите новый диаметр (Например 315), и нажмите < Enter >.

Автокад построит круг с диаметром 315 . См. Рис. 7.

Как нарисовать круг в Автокаде

Рис. 7. Круг с диаметром 315.

Есть другой способ построить Круг по центру и диаметру. На ленте, щелкните по стрелке под надписью КРУГ , откроется раскрывающийся список, в котором выбираем строку « Центр, диаметр ». См. Рис. 8.

Как нарисовать круг в Автокаде

Рис. 8. Команда «Центр, диаметр».

После указания центра круга, программа автоматически выберет опцию диаметр _d , и нам лишь остается ввести значение диаметра и нажать < Enter >. См. Рис. 9.

Как нарисовать круг в Автокаде

Рис. 9. Автоматическое переключение на диаметр.

На рис. 8. Мы видим, что Круг можно построить и другими способами. Давайте для примера построим круг по двум точкам.

Построение круга по двум точкам.

Допустим, нам надо построить Круг между двумя отрезками. См. Рис. 10.

Как нарисовать круг в Автокаде

С клавиатуры набираем « К » и нажимаем < Enter >.

На запрос: « КРУГ Центр круга или [3Т/2Т/ККР (кас кас радиус)]: »

Щелкаем по опции « 2Т » или вводим « 2Т » с клавиатуры и нажимаем < Enter >.

На запрос: «Первая конечная точка диаметра круга:»

Указываем первую точку.

На запрос: «Вторая конечная точка диаметра круга:»

Указываем вторую точку . См. Рис. 11.

Как нарисовать круг в Автокаде

Рис. 11. Круг между отрезками.

Так же, для построение Круга по двум точкам, можно было использовать команду « 2 точки » на ленте. См. Рис. 12.

Как нарисовать круг в Автокаде

Рис. 12. Команда «2 точки» на ленте

Остальные опции используются намного реже. Оставляем их для самостоятельного изучения.

Редактирование Круга.

Давайте посмотрим, что мы можем сделать с уже существующем кругом:

Перемещение Круга.

Чтобы переместить Круг на заданное расстояние (например на 150), щелкните по нему, так чтобы появились ручки . См. Рис. 13.

Как редактировать круг в Автокаде

Затем щелкните по ручке расположенной в центре, так чтобы она стала красной . Отведите курсор мыши (круг) в сторону желаемого перемещения. Наберите с клавиатуры 150 и нажмите < Enter >. См. Рис. 14.

Как редактировать круг в Автокаде

Рис. 14. Активированная ручка в центре.

Окружность переместится в заданном направлении на заданное расстояние.

Изменение радиуса круга.

Чтобы изменить радиус существующего круга, щелкните по нему, так чтобы появились ручки. Затем щелкните по любой крайней ручке, так чтобы она стала красной . Введите новый радиус (например 170 ) и нажмите < Enter >. См. Рис. 15.

Как редактировать круг в Автокаде

Рис. 15. Активированная ручка с краю.

Автокад изменит радиус Круга и он станет равен 170.

Построение круга программным путем.

Для тех, кто хочет создавать свои собственные команды в Автокад, мы рассмотрим, как построить Круг при помощи языка программирования LISP.

Построение круга при помощи функции command.

Запустите редактор Visual LISP. В командной строке наберите VLIDE (или VLISP ) и нажмите < Enter >. См. Рис. 16.

Редактор Visual LISP

Рис. 16. Команда VLIDE.

Откроется редактор Visual LISP.

В нем создаем новый файл и набираем следующие строки.

Затем нажмите на кнопку « Загрузить активное окно редактор а». См. рис. 17.

AutoLisp Круг

Рис. 17. Редактор Visual LISP.

Программа переведет Вас в Автокад. На запрос в командной строке: « Укажите центр круга: »

Укажите любую точку в рабочем окне Автокад.

Программа нарисует Круг радиусом 170 и вернет Вас в редактор Visual LISP. Чтобы увидеть его, перейдите в Автокад . См. Рис. 18.

AutoLisp Круг

Рис. 18. Круг радиусом 170.

Значение радиуса можно также как и координаты запрашивать у пользователя:

Давайте построим сразу два круга, один с радиусом R :

Другой с радиусом на 100 единиц больше чем R :

AutoLisp Круг

Рис. 19. Два круга.

Затем нажмите на кнопку « Загрузить активное окно редактора ».

На запрос: « Укажите центр круга: »

Укажите любую точку в рабочем окне Автокад.

На запрос: « Задайте радиус круга :»

Введите, например: 100 и нажмите < Enter >.

Программа построит сразу две окружности: одну радиусом 100 , другую радиусом 200 . См. Рис. 20.

AutoLisp Круг

Рис. 20. Два круга.

Чтобы преобразовать нашу программу в команду AutoCAD,

В начале программы добавим функцию defun , придумаем имя новой команды ( 2Кr ) и перечислим все временные переменные:

В конце программы добавим закрывающую скобку.

Теперь, чтобы загрузить нашу программу, нажимаем на кнопку « Загрузить активное окно редактор а».

Затем переходим в AutoCAD . См. рис. 21.

AutoLisp Круг

Рис. 21. Программа построения кругов.

Вводим в командной строке имя команды: 2Kr и нажимаем < Enter >.

На запросы: указываем центр и значение радиуса. Наша новая команда постоит два круга.

Чтобы снова запустить новую команду, достаточно ввести ее имя в командной строке и нажать < Enter >.

Чтобы запускать нашу новую команду также легко, как и стандартные команды Автокад.

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

Как это сделать рассмотрено в уроках:

Построение круга при помощи функций расширения языка LISP.

Круг, также можно построить при помощи функций расширения языка LISP.

Для этого добавляем строку:

Которая загружает функции расширения (Vla-функции).

Затем строки, которые помогут нам получить указатель на имя пространства модели:

Указатель на программу AutoCAD:

Указатель на активный документ:

Указатель на пространство модели

Запрос центра и радиуса осуществляется аналогично:

Стоим окружность при помощи функции vla-AddCircle:

Строка для построение второго круга:

Добавляем вышесказанное в программу и преобразуем ее в команду Автокад с именем 2Kr2 .

AutoLisp Круг

Рис. 22. Программа с функциями расширения.

Нажмите на кнопку « Загрузить активное окно редактора ».

Перейдите в AutoCAD .

В командной строке введите 2Kr2 и нажмите < Enter >.

Внешне, работа команды 2Kr2 , ни чем не отличается от команды 2Kr .

Только в первом случаи будут созданы простые примитивы Круги . Во втором случаи будут созданы Vla-объекты Круги .

Дальнейшая работа с Vla-объектами , в некоторых случаях проще, чем с обычными примитивами. Поэтому полезно знать разные способы построения объектов.

На этом наш урок окончен. В нем рассказывалось: Как нарисовать круг в Автокаде.

Были рассмотрены следующие аспекты:

Если у Вас появились вопросы, задавайте их в комментариях.

Если Вы нашли что-то полезное на моем сайте не забудьте порекомендовать статью в социальных сетях.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *