Масштабирование объектов от центральной точки до определенного числа

Я не уверен, что делаю что-то не так в моей программе или нет, но я мог бы использовать быстрое руководство, если бы вы могли, и более чем вероятно, проблема в том, что я серьезно об этом думаю (что всегда так для меня), и я не могу придумать, как это объяснить (отсюда и дурацкое название этого вопроса), и доставил мне немного хлопот, просто прибегая к помощи.

Я знаю, как масштабировать объект с помощью:

double scale = 2.0;
Array<Real2> newPoints;
Foreach(Real2 point, points)
{
Vector2 vector = point - centerPoint;
vector *= scale;
newPoints.Add(center + vector);
}

Однако, скажем, я хотел масштабировать размер объекта на 3,6 (единиц), а не в процентах. Как бы я это сделал?

Для меня имело смысл, по крайней мере, что я буду делать что-то вроде

vector *= 1 - (3.6/vector.length);

но я все еще получаю неправильные результаты при запуске моего приложения. Любая помощь по этому вопросу? Как я сказал, извините, если я объяснил это неправильно, я ужасен, когда дело доходит до таких вещей, поэтому, если есть что-то, я могу уточнить, дайте мне знать. Спасибо за помощь.

0

Решение

Кажется, вы хотите масштабировать объект так, чтобы его новый размер был (скажем) на 3,6 единицы больше, чем его старый размер. В этом случае код будет таким же, за исключением

scale = (old_size + 3.6) / old_size;

Вам все еще нужно масштабировать каждый вектор на одну и ту же величину, чтобы сохранить общую форму объекта.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]