Processing 试图得到一个三角形来指向鼠标

Processing 试图得到一个三角形来指向鼠标,processing,p5.js,Processing,P5.js,我不想承认这一点,但我被困在了一场刚刚开始的比赛中 这个概念非常简单,我有一个三角形,我想指向鼠标的位置。当然,我在p5.js中使用atan2函数,因为这是推荐用于此类任务的。我知道我计算的旋转量是错误的,我希望它通过三角形的中点旋转,但将尖端指向鼠标。如果有人能教我这背后的数学知识,我将不胜感激 var player; function setup() { createCanvas(400, 400); player = new Player(); } function draw()

我不想承认这一点,但我被困在了一场刚刚开始的比赛中

这个概念非常简单,我有一个三角形,我想指向鼠标的位置。当然,我在p5.js中使用atan2函数,因为这是推荐用于此类任务的。我知道我计算的旋转量是错误的,我希望它通过三角形的中点旋转,但将尖端指向鼠标。如果有人能教我这背后的数学知识,我将不胜感激

var player;
function setup() {
  createCanvas(400, 400);
  player = new Player();
}

function draw() {
  background(0)
  fill(255);
  player.update();
}


function Player() {
   this.pos = createVector(width/2, height/2);
   this.r = 20;
   this.direction = 0;

   this.radians = 0;
   this.update = function() {
     push();
     stroke(255);
     noFill();
     translate(this.pos.x, this.pos.y);
     this.radians = atan2(mouseY-this.pos.y, mouseX-this.pos.x);
     rotate(this.radians);
     triangle(-this.r, this.r, this.r, this.r, 0, -this.r);
     ellipse(0, 0, 20, 20);
     pop();
   }
}

你的计算是正确的

您可能缺少一个与渲染相关的次要细节:0弧度/度指向右侧,您的假设可能是绘制三角形时0度指向上方

我会保持计算不变,以防在以后的开发中需要将此角度用于其他游戏对象。相反,我只需将旋转偏移90度(
HALF_PI
)进行渲染,以说明三角形是朝上绘制的,而不是朝右绘制0度:

rotate(this.radians + HALF_PI);
或者,您也可以更新
三角形
调用以绘制指向右侧的三角形


玩得开心

哇,我现在确实觉得自己像个白痴,非常感谢你,你对我的假设是正确的!