Я работаю над классовым проектом, чтобы создать приложение для рисования, используя p5.js. Одна из моих функций - это инструмент для рисования разных форм и включает в себя использование раскрывающегося меню для выбора формы для рисования на холсте. Я использую функцию CreateSelect () для создания меню. Он работает нормально и рисует каждую опцию формы при использовании вне функции рисования, но это означает, что выпадающее меню видно, даже если инструмент формы не выбран. (Не разрешено) Я смотрел на это часами и не могу понять, где я ошибся. Консоль не показывает никаких ошибок, когда я пытаюсь нарисовать или выбрать другую форму. У кого -нибудь есть какие -либо советы о том, с чего начать исправлять? Или то, что мне не хватает? < /P>
Любая помощь очень ценится! //Draws various shapes to canvas based on user selections
function drawShapesTool(){
//set an icon and a name for the object
this.icon = "assets/shapes.jpg";
this.name = "shapes";
var previousMouseX = -1;
var previousMouseY = -1;
var w;
var h;
var shapeOptions = ["rectangle", "circle", "triangle", "rhombus"];
var selectedShape;
var shapeSelect;
//Adapted from mirrorDrawTool and p5.js library
this.shapePicker = function(){
shapeSelect = createSelect();
shapeSelect.position(350, 700);
shapeSelect.option('rectangle');
shapeSelect.option('circle');
shapeSelect.option('triangle');
shapeSelect.option('rhombus');
shapeSelect.selected('rectangle');
};
this.draw = function(){
// this.shapePicker();
var shapeSelect = createSelect();
shapeSelect.position(350, 700);
shapeSelect.option('rectangle');
shapeSelect.option('circle');
shapeSelect.option('triangle');
shapeSelect.option('rhombus');
// shapeSelect.selected('rectangle');
selectedShape = shapeSelect.value();
var drawRect = function(){
rect(previousMouseX,previousMouseY, w, h);
}
var drawCircle = function(){
ellipse (previousMouseX, previousMouseY, Math.max(w, h) * 1.5);
}
var drawTri = function(){
triangle(mouseX, mouseY - h, mouseX - w, mouseY + h, mouseX + w, mouseY +h);
}
var drawRhom = function(){
quad(mouseX, mouseY, w / 2, h / 2, previousMouseX,previousMouseY, w * 0.5, h);
}
if(mouseIsPressed){
if (previousMouseX == -1 && previousMouseY == -1){
previousMouseX = mouseX;
previousMouseY = mouseY;
}
else {
w = mouseX - previousMouseX;
h = mouseY - previousMouseY;
updatePixels();
if (selectedShape == 'rectangle'){
drawRect();
}
else if (selectedShape == 'circle'){
drawCircle();
}
else if (selectedShape == 'triangle'){
drawTri();
}
else if (selectedShape == 'rhombus') {
drawRhom();
}
}
}
else {
previousMouseX = -1;
previousMouseY = -1;
loadPixels();
}
};
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... w-function
P5.JS CreateSelect () не изменяет выбранную опцию при вызове в функции рисования ⇐ Javascript
Форум по Javascript
1740894184
Anonymous
Я работаю над классовым проектом, чтобы создать приложение для рисования, используя p5.js. Одна из моих функций - это инструмент для рисования разных форм и включает в себя использование раскрывающегося меню для выбора формы для рисования на холсте. Я использую функцию CreateSelect () для создания меню. Он работает нормально и рисует каждую опцию формы при использовании вне функции рисования, но это означает, что выпадающее меню видно, даже если инструмент формы не выбран. (Не разрешено) Я смотрел на это часами и не могу понять, где я ошибся. Консоль не показывает никаких ошибок, когда я пытаюсь нарисовать или выбрать другую форму. У кого -нибудь есть какие -либо советы о том, с чего начать исправлять? Или то, что мне не хватает? < /P>
Любая помощь очень ценится! //Draws various shapes to canvas based on user selections
function drawShapesTool(){
//set an icon and a name for the object
this.icon = "assets/shapes.jpg";
this.name = "shapes";
var previousMouseX = -1;
var previousMouseY = -1;
var w;
var h;
var shapeOptions = ["rectangle", "circle", "triangle", "rhombus"];
var selectedShape;
var shapeSelect;
//Adapted from mirrorDrawTool and p5.js library
this.shapePicker = function(){
shapeSelect = createSelect();
shapeSelect.position(350, 700);
shapeSelect.option('rectangle');
shapeSelect.option('circle');
shapeSelect.option('triangle');
shapeSelect.option('rhombus');
shapeSelect.selected('rectangle');
};
this.draw = function(){
// this.shapePicker();
var shapeSelect = createSelect();
shapeSelect.position(350, 700);
shapeSelect.option('rectangle');
shapeSelect.option('circle');
shapeSelect.option('triangle');
shapeSelect.option('rhombus');
// shapeSelect.selected('rectangle');
selectedShape = shapeSelect.value();
var drawRect = function(){
rect(previousMouseX,previousMouseY, w, h);
}
var drawCircle = function(){
ellipse (previousMouseX, previousMouseY, Math.max(w, h) * 1.5);
}
var drawTri = function(){
triangle(mouseX, mouseY - h, mouseX - w, mouseY + h, mouseX + w, mouseY +h);
}
var drawRhom = function(){
quad(mouseX, mouseY, w / 2, h / 2, previousMouseX,previousMouseY, w * 0.5, h);
}
if(mouseIsPressed){
if (previousMouseX == -1 && previousMouseY == -1){
previousMouseX = mouseX;
previousMouseY = mouseY;
}
else {
w = mouseX - previousMouseX;
h = mouseY - previousMouseY;
updatePixels();
if (selectedShape == 'rectangle'){
drawRect();
}
else if (selectedShape == 'circle'){
drawCircle();
}
else if (selectedShape == 'triangle'){
drawTri();
}
else if (selectedShape == 'rhombus') {
drawRhom();
}
}
}
else {
previousMouseX = -1;
previousMouseY = -1;
loadPixels();
}
};
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79478673/p5-js-createselect-not-changing-selected-option-when-called-in-draw-function[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия