Несмотря на то, что может быть дополнительное время выполнения при приведении в соответствие с созданием точки, подобной Point (myVector2.X, myVector2.Y), последствия, скорее всего, слишком малы, чтобы вы их когда-либо заметили (как правило, следует избегать преждевременной оптимизации)
Пойдите с тем, что выглядит чистым и простым в обслуживании. Если бы это был я, я бы просто создал новую точку в вызове метода ...
Вы также можете написать метод расширения.
public static Point Origin(this Vector2 v)
{
//original proposal
//return new Point( (int)v.X, (int)v.Y );
//better! does correctly round the values
return new Point( Convert.ToInt32(v.X), convert.ToInt32(v.Y));
}
Тогда вы могли бы сделать что-то вроде этого rect.Contains(vec.Origin)
Что-то следует помнить, хотя: этот метод на самом деле не будет проверять, содержится ли вектор в прямоугольнике, он будет только проверять, есть ли источник. Помните, что вектор - это направление и величина.