Что лучший способ состоит в том, чтобы повернуть CGPoint на сетке?

Что-то мне жаль, что я не знал, когда я сначала начал делать PHP: Сохраните свой тяжело поднимающийся код программы максимально далеко от Вашего вывода HTML. Тем путем они оба остаются в больших, довольно непрерывных, читаемых блоках.

лучший способ, которым я нашел выполнения этого, состоит в том, чтобы сделать статический файл HTML сначала , возможно, с некоторыми поддельными данными, таким образом, я могу ввести по абсолютному адресу вокруг и разобраться в дизайне, затем запишите код PHP, чтобы получить динамическую часть вывода и склеить их обоих вместе (как Вы вносите свой вклад, ваше дело - Вы могли сделать это с Присяжным острословом как другие, предлагают).

10
задан Frank 20 October 2009 в 15:28
поделиться

4 ответа

You can also use that:

rotatedPoint = CGPointApplyAffineTransform(initialPoint, CGAffineTransformMakeRotation(angle));

EDIT: to perform rotation around custom point you must do like Adam described in his answer. Using CGAffineTransform it must look something like:

CGAffineTransform translateTransform = CGAffineTransformMakeTranslation(customCenter.x, customCenter.y);
CGAffineTransform rotationTransform = CGAffineTransformMakeRotation(angle);

CGAffineTransform customRotation = CGAffineTransformConcat(CGAffineTransformConcat( CGAffineTransformInvert(translateTransform), rotationTransform), translateTransform);

rotatedPoint = CGPointApplyAffineTransform(initialPoint, customRotation);
24
ответ дан 3 December 2019 в 14:11
поделиться
1
ответ дан 3 December 2019 в 14:11
поделиться

Используйте 2D матрицу вращения . Если вы хотите повернуть точку против часовой стрелки вокруг начала координат на угол , угол , вы должны сделать следующее:

10
ответ дан 3 December 2019 в 14:11
поделиться

Вы также можете позволить Core Animation сделать это за вас. Взгляните на документацию Apple по геометрии слоя и преобразованиям в Core Animation Programming Guide

Все, что вам нужно сделать, это установить точку привязки слоя, а затем вы можете применить преобразование примерно так:

CABasicAnimation *rotationAnimation;
rotationAnimation = [CABasicAnimation 
                     animationWithKeyPath:@"transform.rotation.z"];

[rotationAnimation setFromValue:DegreesToNumber(0)];
[rotationAnimation setToValue:DegreesToNumber(360)];

DegreesToNumber преобразует градусы в радианы и возвращает представление NSNumber.

Я не уверен, что именно вы пытаетесь сделать, но часто Core Animation - отличный выбор для визуализаций.

1
ответ дан 3 December 2019 в 14:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: