Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

280
Visualizações
¿Cómo puedo numerar una lista de puntos en p5.js?

¿Es posible numerar una lista de puntos en p5.js? En este momento estoy usando ml5.pj para las detecciones de mallas faciales, que generan coordenadas x e y para un conjunto de 465 puntos. Quiero seleccionar algunos. Para hacer eso, necesito saber cuáles son los índices correspondientes. ¿Alguna forma posible de hacer esto?

No es relevante, pero en Grasshopper 3D, es un componente llamado "lista de puntos"

ingrese la descripción de la imagen aquí

 let facemesh; let video; let predictions = []; function setup() { createCanvas(640, 480); video = createCapture(VIDEO); video.size(width, height); facemesh = ml5.facemesh(video, modelReady); // This sets up an event that fills the global variable "predictions" // with an array every time new predictions are made facemesh.on("predict", results => { predictions = results; }); // Hide the video element, and just show the canvas video.hide(); } function modelReady() { console.log("Model ready!"); } function draw() { // image(video, 0, 0, width, height); background(255); // We can call both functions to draw all keypoints drawKeypoints(); } // A function to draw ellipses over the detected keypoints function drawKeypoints() { for (let i = 0; i < predictions.length; i += 1) { const keypoints = predictions[i].scaledMesh; // Draw facial keypoints. for (let j = 0; j < keypoints.length; j += 1) { const [x, y] = keypoints[j]; fill(0, 255, 0); ellipse(x, y, 3, 3); } } }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

De acuerdo, si te entiendo correctamente, quieres agregar etiquetas a cada punto. Puede volverse sofisticado con esto y mantenerlo en el aire rastreando las coordenadas del cursor y usándolas como una clave para acceder a un valor de objeto. Sin embargo, dado que dices que no eres muy completo en programación, voy a mantener esto muy simple aquí...

Solo vamos a agregar texto donde está el punto y lo compensaremos verticalmente en 5px. Puede leer más sobre el texto aquí en la documentación de p5.js: https://p5js.org/reference/#/p5/text

Aquí hay un enlace sobre literales de plantilla en js: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

 // A function to draw ellipses over the detected keypoints function drawKeypoints() { for (let i = 0; i < predictions.length; i += 1) { const keypoints = predictions[i].scaledMesh; // Draw facial keypoints. for (let j = 0; j < keypoints.length; j += 1) { const [x, y] = keypoints[j]; fill(0, 255, 0); ellipse(x, y, 3, 3); text(`${i}-${j}`, x, y+5); // Draw Text with Index Labelling } } }

Avanzado: Mostrar el texto al pasar el mouse.

  1. Cree un Objeto para mostrar los valores basados en xy:ij key:vals
  2. Detectar coordenadas X, Y del mouse
  3. Mostrar al pasar el mouse
 const hoverCoords = {} function draw() { background(255); drawKeypoints(); hoverCoords[`${mouseX}-${mouseY}`] && text(hoverCoords[`${mouseX}-${mouseY}`], x, y+5) } // A function to draw ellipses over the detected keypoints function drawKeypoints() { for (let i = 0; i < predictions.length; i += 1) { const keypoints = predictions[i].scaledMesh; // Draw facial keypoints. for (let j = 0; j < keypoints.length; j += 1) { const [x, y] = keypoints[j]; hoverCoords[`${x}-${y}`] = `${i}-${j}` // Create object key val fill(0, 255, 0); ellipse(x, y, 3, 3); } } }

No he probado lo anterior, pero sabe que debería ser el enfoque correcto usar un objeto y establecer las coordenadas como valores clave y luego poder hacer una coincidencia real en eso para mostrar los valores ij. Busque objetos en javascript.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda