说我有:
A = np.array( [1,2,3,-8] )
Run Code Online (Sandbox Code Playgroud)
我需要一个返回8的函数
我知道这是一个简单的,但即时Google-Fu失败了,因此在填充SO方面可能有一些优点.
我正在做一个2D坦克炮塔游戏,你在屏幕中间旋转坦克,点击你的左按钮然后一个小弹丸移动到那个位置.
我目前正处于当前位置和所需位置的位置,我现在需要做的是获得这两个点的大小,这应该返回1或0.
这是我的C++ VectorClass幅度函数:
float vector2D::magnitude(vector2D vec2)//<! Vector magnitude
{
float result;
result = (sqrt(x*vec2.x)+(y*vec2.y));
return result;
}
Run Code Online (Sandbox Code Playgroud)
这是我将我想要的和当前位置标准化的代码:
currentPos.x = laserTexture.getSize().x/2.0f;
currentPos.y = laserTexture.getSize().y/2.0f;
desiredPos.x = sf::Mouse::getPosition().x;
desiredPos.y = sf::Mouse::getPosition().y;
normalisedLocation = magnitude(desiredPos - currentPos);
Run Code Online (Sandbox Code Playgroud)
当前位置与我的laserTexture中间相关,这是屏幕中间的固定旋转点.
我想要的位置是鼠标点击,它返回X和Y的位置(这是有效的).
数学不是我的强项,所以当谈到编程这类东西时,我比其他人做的更挣扎,所以它需要我更长时间/我会想出一些不太优雅的解决方案.
我的最终目标是获得标准化的位置,然后当点击鼠标左键时,坦克炮塔将会发射,并且射弹将移动到所需的位置.
所以澄清一下:
谢谢
尝试使用p5.js库移植我在javascript中制作的内容,该库具有用于2D矢量的setMag函数
如何设置ROBLOX / lua中2D向量的大小?
function particle:update(mouseX,mouseY)
local t=(Vector2.new(mouseX,mouseY)-(self.pos)).unit.setMag(self.acc)
self.thrust=t
self.vel = self.vel + self.thrust
if self.vel.magnitude>self.maxspeed then
self.vel.unit.setMag(self.maxspeed)
end
self.pos=self.pos+(self.vel)
self.frame.Position=UDim2.new(0,self.pos.x,0,self.pos.y)
end
Run Code Online (Sandbox Code Playgroud)