Добрый день хотим создать чатбот который будет давать ответы на вопросы клиентов основываясь на нашем FAQ пример как давно существует ваша компани мы на рынке с 2002 года ...
Javascript html canvas paper.js
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Присылайте конечную стоимость работы
ТЗ
1. Нужно сделать HTML страничку на которой будет элемент CANVAS.
2. В него должна быть загружена подложка в виде планировки помещения.
3. На этой картинке должна быть возможность рисовать мышкой по точкам контуры цвет салатовый полупрозрачный (смотрите приложенный скриншот)
4. Контуры должны замыкаться при клике на первую точку после чего заливаются заливкой чть светлее чем контур
5. На странице две кнопки одна очищает канвас оставляя только подложку, вторая передает координаты контура в php по средствам ajax
6. Код нужно разместить в песочнице или на вашем хостинге для теста
Можно сделать с помощью paper.js или как удобнее!
GPT генерит такой код:
Вот обновленный код, который добавляет кнопку "Сохранить" и отправляет координаты многоугольника на сервер с помощью скрипта PHP:
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/paper"></script>
<style>
#canvas {
position: relative;
border: 1px solid black;
}
</style>
</head>
<body>
<div id="canvas"></div>
<button onclick="savePolygon()">Сохранить</button>
<script>
// Создаем новый холст Paper.js
paper.setup('canvas');
// Добавляем подложку в виде jpg картинки
var raster = new paper.Raster('path-to-your-image.jpg');
raster.position = view.center;
// Создаем новый слой для рисования многоугольника
var polygonLayer = new paper.Layer();
polygonLayer.activate();
// Массив для хранения точек многоугольника
var points = [];
// Функция для создания новой точки при клике на холст
function createPoint(event) {
var point = event.point;
var circle = new paper.Path.Circle(point, 5);
circle.fillColor = 'red';
points.push(point);
// При нажатии в первую точку, создаем замкнутую фигуру
if (points.length > 2 && point.equals(points[0])) {
var polygon = new paper.Path(points);
polygon.fillColor = new paper.Color(0, 0, 1, 0.5); // Полупрозрачный синий цвет
polygon.closed = true;
points = [];
}
}
// При движении мыши, перемещаем активную фигуру
function movePolygon(event) {
var delta = event.delta;
if (polygonLayer.children.length > 0) {
polygonLayer.children[0].position.x += delta.x;
polygonLayer.children[0].position.y += delta.y;
}
}
// Функция для отправки координат многоугольника на сервер
function savePolygon() {
if (polygonLayer.children.length > 0) {
var polygonPoints = polygonLayer.children[0].segments.map(function(segment) {
return [segment.point.x, segment.point.y];
});
// Отправляем данные на сервер с помощью AJAX запроса
var xhr = new XMLHttpRequest();
xhr.open('POST', 'save-polygon.php', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log('Многоугольник сохранен на сервере');
}
};
xhr.send(JSON.stringify(polygonPoints));
}
}
// Подписываемся на событие клика и движения мыши
paper.view.on('click', createPoint);
paper.view.on('mousedrag', movePolygon);
</script>
</body>
</html>
Примечания:
- Замените 'path-to-your-image.jpg' на путь к своей jpg картинке.
- При клике на холст будут создаваться точки многоугольника.
- Если кликнуть в первую точку, создастся замкнутая фигура. При этом можно начать рисовать новую фигуру.
- Координаты многоугольника отправляются на сервер с помощью POST-запроса в формате JSON.
- Создайте файл save-polygon.php, который будет обрабатывать запрос на сервере и сохранять координаты многоугольника. В этом файле можно использовать переменную $_POST['data'], чтобы получить JSON-строку с данными многоугольника.
- Похожие заказы
- Веб-программирование5 заявокЗакрыт6 месяцев назад
Нужно переделать корзину на сайте(React) + бэк часть написать. Заявки приходят на почту, указанную на почте. Информация: 1. First name 2. Last name 3. Mail 4. Phone number(optional) 5. Назва товару та ...
Веб-программирование10 заявокЗакрыт5 месяцев назад- $25
Имею скрипт, который выполняет функции продвижения в телеграм. Работает на Telethon Нужно, при запуске скрипта добавить Выбор, подключить прокси да/нет Если да, скрипт должен сначала проверить прокси, после чего попытаться подключиться к аккаунту (важно, отсечь ...
Веб-программирование4 заявкиЗакрыт5 месяцев назад Задача: создание простого SPA на ReactJS для использование его в WebView. Возможность создания и Backenda'a сильно приветствуется. Дерево и скрины в приложении.
Веб-программирование9 заявокЗакрыт5 месяцев назадЗадача Здравствуйте. Нужно доработать интернет-магазин в соответствии с ТЗ по функционалу, верстке. ТЗ - https://docs.google.com/document/d/1ZQZvXZ-85CnkjA287NqBpT9M6bAyTt3pf9aB8_dJ3hs/ Сайт отправлю в личку. Просьба оценить стоимость и сроки.
Веб-программирование2 заявкиЗакрыт6 месяцев назадВ заявке пишите свой телеграмм.
Веб-программирование1 заявкаЗакрыт6 месяцев назад- $65
Ищу разработчика на drupal Одностраничный сайт для турагентства с агрегатором подбора билетов по дате. Есть готовый фигма-файл с адаптивными дизайнами Сроки горят, потому что наш прошлый разработчик кинул (1-2 ...
Веб-программирование2 заявкиЗакрыт5 месяцев назад - $1000
Ищу человека или команду для разработки сайта для моего фитнес проекта. Хотелось бы, чтобы сайт был написан на нескольких языках программирования Python, JavaScript, HTML и CSS.
Веб-программирование18 заявокЗакрыт5 месяцев назад - $200
Обеспечить плавные переходы между страницами, оптимизировать систему маршрутизации и управление мета-тегами для разделов курсов. Кроме того выполнить небольшие правки, такие как добавление таймера и ценника на всех страницах, а также устранение проблемы с блоками на ...
Веб-программирование4 заявкиЗакрыт5 месяцев назад Потрібно, щоб мені надходило звукове повідомлення на сайті, коли на ньому з'являється нове замовлення. Я фрілансер на одному з сайтів, на якому я працюю Мені потрібно зробити якимось чином, щоб коли на цьому сайті з'являлося ...
Веб-программирование4 заявкиЗакрыт5 месяцев назад