我想要完成的是一個帶有3D旋轉立方體的iPad應用程序,並且在立方體的每一面我想定義多個區域,一旦點擊它就會進入另一個視圖或顯示彈出。三維可旋轉立方體與可點擊區域的側面
可以這樣用在Xcode使用OpenGL ES從頭一些努力來實現,或者我應該使用3D框架,如果是的話這將是最簡單的框架? (我只聽說過Unity和它相當昂貴的)
有沒有人有一個很好的教程,讓我學習如何做到這一點?
我已經嘗試過3D CSS3轉換,但我想保留它作爲最後的手段。
我想要完成的是一個帶有3D旋轉立方體的iPad應用程序,並且在立方體的每一面我想定義多個區域,一旦點擊它就會進入另一個視圖或顯示彈出。三維可旋轉立方體與可點擊區域的側面
可以這樣用在Xcode使用OpenGL ES從頭一些努力來實現,或者我應該使用3D框架,如果是的話這將是最簡單的框架? (我只聽說過Unity和它相當昂貴的)
有沒有人有一個很好的教程,讓我學習如何做到這一點?
我已經嘗試過3D CSS3轉換,但我想保留它作爲最後的手段。
如果你想要的只是一個文字3D立方體,你可以使用Core Animation來做到這一點。檢查出CATransformLayer。您可以使用CATransformLayer
很容易地編寫出真正的3D層次結構。 Joe Ricioppo有a cool article about this,以及一些示例代碼和視頻。它與3D CSS3變換類似,但操作代表3D層次結構的單個圖層而不是單獨變換每個子圖層要容易得多。只需旋轉最初的所有立方體面並定位它們,以便它們形成一個立方體。然後,您可以將變換應用於變換圖層本身,並且它會完成所有的花式數學運算以自動變換您的子圖層。
這個問題的最大問題是觸摸處理如何工作。您不能在CATransformLayer
上使用-hitTest:
,因爲它無法將2D觸摸映射到其自己的3D層次結構。您可能可以通過自己的hitTest:
實現來解決這個問題,但它幾乎感覺比其價值更多的工作。我不知道OpenGL爲2D到3D觸摸轉換提供了什麼規定,但這可能是您唯一的選擇。
我會試試這個。需要找到一種方法來讓觸摸工作莫名其妙。非常感謝答案。 – blackpla9ue 2012-04-24 02:49:47
這個@ blackpla9ue的運氣怎麼樣? – seenickcode 2013-06-03 16:12:55
試試這個代碼
CATransition *transition = [CATransition animation];
transition.delegate = self;
transition.duration = 0.8;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
NSString *types[4] = {@"cube", @"rippleEffect", @"cube", @"alignedCube"};
NSString *subtypes[4] = {kCATransitionFromTop, kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromBottom};
transition.type = types[0];
transition.subtype = subtypes[1];
[self.view.layer addAnimation:transition forKey:nil];
這些轉換被視爲私有API。可能因使用它們而被拒絕 – Mazyod 2014-12-02 19:24:04
也許不是正是你正在尋找,但我們已經產生了一些代碼,功能可以幫助你: http://www.chupamobile.com/products/details/2106/Cube+Selector/
它的功能齊全,並準備使用出來的該框
[擊中測試在這裏](http://stackoverflow.com/questions/5544808/mapping-from-2d-projection-back-to-3d-point-cloud)。 – 2012-04-24 06:29:18
我無法幫助您進行命中測試,但我鏈接到一些示例代碼,以在此答案中繪製多維數據集:http://stackoverflow.com/a/2858658/19679 – 2012-04-24 16:24:40