SceneKit自學之路(3)

第三個Demo拂盯,專門研究了SCNCamera

這個實例就是把SCNCamera的各個屬性列出來记靡,通過值變化觀察實際作用。

Demo不細講了团驱,主要紀錄一下測試結(jié)果摸吠。


SCNCamera

SCNKit的坐標系如下圖,X軸左負右正嚎花,Y軸下負上正寸痢,Z軸前負后正。


圖片來自:http://blog.csdn.net/pzhtpf/article/details/50313933

默認情況下紊选,SCNCamera總是沿著節(jié)點的坐標系(0,0,0)像-z軸方向觀看啼止。
所以說默認情況下,我們看不到物件兵罢,因為我們在物件的里面献烦。

我們可以使用postioneulerAngles卖词、scale巩那、rotationtransform等來調(diào)整觀看的角度和形狀此蜈〖春幔可以通過zFarzNear等來調(diào)整觀看的范圍裆赵。

Position
/*! 
 @property position
 @abstract Determines the receiver's position. Animatable.
 */
@property(nonatomic) SCNVector3 position;

決定了接收機的位置东囚。


Position

SCNVector3 是一個三維坐標系,分為x,y,z战授。默認是在原點(0,0,0)页藻。

當x<0時桨嫁,表示相機在水平位置往左移了,看到飛船就會在右邊惕橙。是左側(cè)視角瞧甩。
y<0時苍柏,相機往下移動哺徊,飛船出現(xiàn)在上面策菜。是仰視視角厚掷。
z<0時沪斟,相機向前移動皮胡,飛船出現(xiàn)在后方面叉信。是遠視視角米辐。
所以栓始,如果想讓飛船出現(xiàn)在視野中务冕,只需要設(shè)置z>0即可。具體值需要根據(jù)飛船的大小和需要觀測的距離決定幻赚。z要大于物件禀忆,z軸方向z越大,就離得越遠落恼,觀察到的就越小箩退。

Euler Angles
/*!
 @property eulerAngles
 @abstract Determines the receiver's euler angles. Animatable.
 @dicussion The order of components in this vector matches the axes of rotation:
               1. Pitch (the x component) is the rotation about the node's x-axis (in radians)
               2. Yaw   (the y component) is the rotation about the node's y-axis (in radians)
               3. Roll  (the z component) is the rotation about the node's z-axis (in radians)
            SceneKit applies these rotations in the reverse order of the components:
               1. first roll
               2. then yaw
               3. then pitch
 */
@property(nonatomic) SCNVector3 eulerAngles API_AVAILABLE(macos(10.10));

歐拉角,注釋看得有點暈佳谦〈骼裕看Demo

Euler Angles

也是一個三維坐標系,默認(0,0,0)钻蔑。
繞三個軸的旋轉(zhuǎn)值pitch啥刻,yaw,roll咪笑,意思為俯仰角可帽,偏航角,翻滾角窗怒,
當x<0時蘑拯,飛船往上飛了。反之x>0兜粘,飛船往下申窘。
當y<0時,飛船往左孔轴。同理y>0剃法,飛船往右。
當z<0時路鹰,飛船逆時針翻滾贷洲。x>0收厨,飛船順時針翻滾。
需要注意的是优构,這個只是觀察角度诵叁,實際上物件位置并沒有變化。

Scale
/*! 
 @property scale
 @abstract Determines the receiver's scale. Animatable.
 */
@property(nonatomic) SCNVector3 scale;

物件縮放比钦椭。


Scale

同樣是三維坐標系拧额,默認(1,1,1)。
當x>0時彪腔,物件在x軸的長度會隨x增加而變小侥锦。當x==1時為原始大小。
當x<0時德挣,物件在x軸的長度會隨x減小而變小恭垦。當x==-1時為原始大小。此時物件顯示為背面格嗅。這個為什么會顯示成背面我暫時沒有理解番挺。所有的點都乘以一個負數(shù),說明在負坐標系的空間屯掖。不過平常使用過程中應(yīng)該也不會出現(xiàn)x<0的情況建芙。

y軸和z軸同理對應(yīng),物件在y軸和z軸的變化懂扼。

Z Far
/*! 
 @property zFar
 @abstract Determines the receiver's far value. Animatable.
 @discussion The far value determines the maximal distance between the camera and a visible surface. If a surface is further from the camera than this maximal distance, then the surface is clipped. Defaults to 100.
 */
@property(nonatomic) double zFar;

決定相機和可見表面之間的最大距離。如果一個物體的表面比這個最大的距離更遠右蒲,那么它的表面就會被剪掉阀湿。默認為100。


zFar
Z Near
/*! 
 @property zNear
 @abstract Determines the receiver's near value. Animatable.
 @discussion The near value determines the minimal distance between the camera and a visible surface. If a surface is closer to the camera than this minimal distance, then the surface is clipped. The near value must be different than zero. Defaults to 1.
 */
@property(nonatomic) double zNear;

決定了相機和可見表面之間的最小距離瑰妄。如果一個表面離攝像機比這個最小距離更近陷嘴,那么表面就會被剪掉。接近的值必須與零不同间坐。默認為1灾挨。


zNear
Rotation
/*! 
 @property rotation
 @abstract Determines the receiver's rotation. Animatable.
 @discussion The rotation is axis angle rotation. The three first components are the axis, the fourth one is the rotation (in radian).
 */
@property(nonatomic) SCNVector4 rotation;

軸角旋轉(zhuǎn),和以上的幾個不同竹宋,它除了x劳澄、y、z軸的旋轉(zhuǎn)之外蜈七。多了一個弧度旋轉(zhuǎn)秒拔,w。默認值(0,0,0,0)

這個實在觀察不出來有什么用飒硅。以后再補充砂缩。


先記錄常用的幾個屬性作谚。其他的以后用到再回來補充吧。


不再補充了庵芭,其實我們可以在SceneKit Scene File里可視化得更加直觀得觀察各個屬性妹懒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市双吆,隨后出現(xiàn)的幾起案子眨唬,更是在濱河造成了極大的恐慌,老刑警劉巖伊诵,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件单绑,死亡現(xiàn)場離奇詭異,居然都是意外死亡曹宴,警方通過查閱死者的電腦和手機搂橙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笛坦,“玉大人区转,你說我怎么就攤上這事“胬” “怎么了废离?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長礁芦。 經(jīng)常有香客問我蜻韭,道長,這世上最難降的妖魔是什么柿扣? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任肖方,我火速辦了婚禮,結(jié)果婚禮上未状,老公的妹妹穿的比我還像新娘俯画。我一直安慰自己,他們只是感情好司草,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布艰垂。 她就那樣靜靜地躺著,像睡著了一般埋虹。 火紅的嫁衣襯著肌膚如雪猜憎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天搔课,我揣著相機與錄音拉宗,去河邊找鬼。 笑死,一個胖子當著我的面吹牛旦事,可吹牛的內(nèi)容都是我干的魁巩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼姐浮,長吁一口氣:“原來是場噩夢啊……” “哼谷遂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起卖鲤,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤肾扰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛋逾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體集晚,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年区匣,在試婚紗的時候發(fā)現(xiàn)自己被綠了偷拔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡亏钩,死狀恐怖莲绰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姑丑,我是刑警寧澤蛤签,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站栅哀,受9級特大地震影響震肮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜留拾,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一戳晌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧间驮,春花似錦、人聲如沸马昨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸿捧。三九已至屹篓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間匙奴,已是汗流浹背堆巧。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谍肤。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓啦租,卻偏偏與公主長得像,于是被迫代替她去往敵國和親荒揣。 傳聞我的和親對象是個殘疾皇子篷角,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • TF API數(shù)學計算tf...... :math(1)剛開始先給一個運行實例。tf是基于圖(Graph)的計算系統(tǒng)...
    MachineLP閱讀 3,442評論 0 1
  • thiele插值算法 1點插值算法 function [C,c]=thiele(X,Y,Z)%X為插值點橫坐標系任,Y...
    00crazy00閱讀 1,968評論 0 4
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程恳蹲,因...
    小菜c閱讀 6,358評論 0 17
  • 昨天晚上回到家快九點了嘉蕾,L先生一摸兜,壞了!手機落車上了霜旧。 “估計也找不到了错忱!”L先生一臉失望的說。 “你不問問咋...
    奔跑的蝸小牛閱讀 880評論 0 0
  • 2016年9月3日 兩天的學習會議結(jié)束颁糟,今兒周末航背,放松休閑一下,邀約一個C單朋友見面棱貌。 這兩天開會玖媚,遇見之前參加溫...
    陳萍006閱讀 425評論 0 0