Как сделать приложение android для робота-эскиза, такого как Line-us? - PullRequest
0 голосов
/ 21 апреля 2020

Я работаю над приложением android для робота-эскиза (робота, который рисует), такого как этот . Этот робот делает на доске то же самое, что и пользователь, который рисует на мобильном экране, как вы можно увидеть в приведенной выше ссылке на видео. Я уже настроил свое оборудование, которое состоит из четырех шаговых двигателей, Arduino с модулем Bluetooth. Я подключил эти двигатели к своему приложению через Bluetooth, и я управляю этими двигателями через это соединение Bluetooth. Я также реализовал функции рисования на своем android app Когда пользователь рисует что-то на экране мобильного устройства, эскизное расстояние x, y и направление нарисованного эскиза должны быть отправлены роботу. Код android здесь . Ниже приведен скриншот createActivity с черновым эскизом. enter image description here

  1. Теперь проблема заключается в том, что когда я касаюсь экрана, генерируется много положений пикселей, которые различаются на разных экранах dpi. Я запутался, как можно Я масштабирую эти значения

  2. Второе выданное значение android Система координат экрана похожа на перевернутый первый квадрант. А мы go вниз по значению y увеличивается.

enter image description here

Есть ли у кого-нибудь идеи, как можно масштабировать мои значения x, y, чтобы на определенное расстояние в направлении x или y перемещался соответствующий манипулятор робота? заданное расстояние c в том же направлении, что и x или y.

1 Ответ

1 голос
/ 21 апреля 2020

Есть разные возможности. Я посмотрел в код. Ваш класс PaintView сохраняет каждую точку, которую пользователь dr aws, в список под названием "pointsLists". Кассета PaintView - это область рисования в макете (activity_create. xml), имеющая фиксированный размер 50 мм * 25 мм.

Этот список точек может вызываться paintView.paintViewPoints() другими действиями, такими как creatAcivity.java.

Кажется, что рисование выполняется внутри растрового изображения. Вы можете изменить размер растрового изображения, вызвав paintView.onSizeChanged(int w, int h, int oldw, int oldh);

. Самый простой способ решить ваш вопрос - добавить эту строку в CreateActivity. java класс (после строки setcontentview):

paintView.onSizeChanged(5,10,25,50); //reducing the scale to 1:5 in this case

...