Я создал эту страницу для лучшего понимания вопроса. Как вы видите с помощью CSS3 мы можем повернуть элемент вокруг оси X, Y или Z с помощью преобразования: повернуть [XYZ] (M град/рад)
.
Но я ищу функцию для поворота элемента на любой данной линии. Например, поворот элемента на линии x = y
. или даже более сложный y = 2x + 3
.
Если вы не понимаете, пожалуйста, держите бумагу в руках и переверните ее из двух дальних углов (для y = x
или y = -x
). или посмотрите на эту фотографию.
Я предполагаю, что это будет сочетание двух вращений, но я не знаю, как вычислить вращения.
Обновление:
Я не знал, что существует функция rotate3d
для преобразования CSS
. эта функция принимает четыре аргумента rx
, ry
, rz
и deg
. Я считаю, что это было бы очень полезно для этой проблемы.
Другое дело, когда мы меняем перевести [X, Y, Z]
на самом деле изменить начало вращения. Это означает, что если вы хотите повернуть вокруг Y = 10px
, вы должны изменить translateZ
на 10px
Update2:
Моя фактическая цель - создать инструмент для применения свойства преобразования CSS с помощью графического интерфейса пользователя. как вы можете видеть в моем файле jsbin. Я хочу распространить его на все преобразования
, которые вы можете сделать. Одна из них - ротация. Я уверен, что можно повернуть элемент вокруг других линий, кроме x = 0
... Но я не знаю, как я могу сделать расчет. Например, вращение 45 ° вокруг Y
и 45 ° вокруг Z
аналогично вращению 45 ° вокруг x = y
. Мне нужно решение для всех линий в пространстве.
-121--1094028-
Perfect KVO включает в себя две части: правильно добавить наблюдателя и правильно удалить наблюдателя.
История:
Не все объекты имеют одинаковый набор наблюдаемых свойств. Я добавляю ключевых наблюдателей пути избирательно так:
если (object.thumbnail_pic_url) [object addObserver: cell forKeyPath: @ «thumbnail _ картина» параметры: 0 контекст: NULL];
Объект может быть удален. При удалении объекта необходимо удалить наблюдателей.База данных очень большая и сложная, поэтому я определенно не хочу регистрировать все ячейки для получения moc-уведомлений, таких как NSManagedObjectContextObjectsDidChireNotification. Но я могу принять, чтобы добавить ячейку ivar в объект, если я должен, даже если это идет снова хороший образец проектировать Modle-View-Controller.
Проблема: Как правильно удалить наблюдатель (ячейку) для всех зарегистрированных ключевых путей из объекта при удалении?
На самом деле, это большая проблема, которая может быть разделена на две небольшие проблемы:
Как определить, какие ключевые пути отменить регистрацию? Я не могу запросить его свойства после удаления объекта - это приведет к невыполняемым сбоям, поэтому я не могу написать код так:
, если (object.thumbnail_pic_url) [object remeyObserver: cell forKeyPath: @ «thumbnail _ картина»];
и я не могу либо слепо удалить наблюдателя для незарегистрированного пути ключа - исключения (невозможно удалить наблюдателя для пути ключа «thumbnail_picture» из, так как он не зарегистрирован как наблюдатель.) будут выброшены.