Is there some math for this ?
I cannot figure it out
I need a return unit vector
Work so far but doesn’t seem correct
cocos2d::Vec3 GObject::getAverageUVector3(cocos2d::Vec3 vecX, cocos2d::Vec3 vecY, cocos2d::Vec3 vecZ) {
cocos2d::Vec3 result;
int multiplier = 0;
if (!vecX.isZero()) { multiplier++; }
if (!vecY.isZero()) { multiplier++; }
if (!vecZ.isZero()) { multiplier++; }
result.x = (vecX.x + vecY.x + vecZ.x) / multiplier;
result.y = (vecX.y + vecY.y + vecZ.y) / multiplier;
result.z = sqrt(pow((result.x), 2) + pow((result.y), 2));
result.x = result.x / result.z;
result.y = result.y / result.z;
result.z = 1.0f;
return result;
}
Also trying this
cocos2d::Vec3 GObject::getAverageUVector3(cocos2d::Vec3 vecX, cocos2d::Vec3 vecY, cocos2d::Vec3 vecZ) {
cocos2d::Vec2 result = (cocos2d::Vec2(vecX.x, vecX.y) + cocos2d::Vec2(vecY.x, vecY.y) + cocos2d::Vec2(vecZ.x, vecZ.y));
float z = sqrt(pow((result.x), 2) + pow((result.y), 2));
result.x = result.x / z;
result.y = result.y / z;
return cocos2d::Vec3(result.x, result.y, 1.0f);
}
Thanks