0Pricing
Swift Academy · Ders

Dönüşümler ve 3B Efektler

Afin ve 3B dönüşümler uygulayın.

Dönüşümler ve 3B Efektler, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Dönüşümler Taşır ve Biçimi Bozar

Bir transform, sınırlarını değiştirmeden bir katmanı yeniden şekillendirir: öteleme, ölçekleme, döndürme ve eğme işlemlerini gerçekleştirir. Core Animation hem 2B (CGAffineTransform) hem de 3B (CATransform3D) dönüşümleri destekler.

2B Afin Dönüşümleri

CGAffineTransform, düzlemsel dönüşümleri yönetir. Dönüşümleri birleştirme yoluyla bir araya getirebilirsiniz; sıra önemlidir.

import UIKit
var t = CGAffineTransform.identity
t = t.scaledBy(x: 1.5, y: 1.5)
t = t.rotated(by: .pi / 6)
layer.setAffineTransform(t)

CATransform3D

CATransform3D, gerçek 3B sağlayan 4 × 4 boyutunda bir matristir. CATransform3DIdentity ile başlayıp uzayda öteleme, ölçekleme ve döndürme uygulayın.

var t = CATransform3DIdentity
t = CATransform3DScale(t, 1.2, 1.2, 1)
layer.transform = t

3B Döndürme

CATransform3DRotate(t, angle, x, y, z) ile herhangi bir eksen etrafında döndürün. y ekseni etrafında döndürmek bir kartı çevirir; x ekseni etrafında döndürmek kartı öne doğru yatırır.

let angle = CGFloat.pi / 4
layer.transform = CATransform3DRotate(
    CATransform3DIdentity, angle, 0, 1, 0) // around y

perspective

Sade bir 3B döndürme, perspective olmadan düz görünür. Derinlik eklemek için özdeşlik matrisinin m34 öğesini küçük bir negatif değere (yaklaşık -1/500) ayarlayın.

var perspective = CATransform3DIdentity
perspective.m34 = -1.0 / 500.0
layer.transform = CATransform3DRotate(perspective, .pi / 4, 0, 1, 0)

m34 Derinlik Oluşturur

m34 terimi x ve y değerlerini derinliğe böler; bu nedenle daha uzaktaki noktalar küçülür. Daha küçük büyüklükler (daha büyük paydalar) daha hafif bir perspektif, daha büyük olanlarsa perspektifi abartılı hâle getirir.

// -1/2000 = subtle, -1/200 = dramatic
perspective.m34 = -1.0 / 1000.0

Bağlantı Noktası ve Dönüşümler

Dönüşümler anchorPoint çevresinde döner. Bir kartı sol kenarı etrafında döndürmek için önce anchorPoint değerini (0, 0.5) olarak ayarlayın.

layer.anchorPoint = CGPoint(x: 0, y: 0.5)
layer.transform = CATransform3DRotate(
    CATransform3DIdentity, .pi / 3, 0, 1, 0)

Dönüşümleri Canlandırma

Dönüşümün tamamı canlandırılabilir. transform anahtar yolunu veya tek bir eksen için transform.rotation.y gibi alt anahtarları canlandırın.

let spin = CABasicAnimation(keyPath: "transform.rotation.y")
spin.fromValue = 0
spin.toValue = CGFloat.pi * 2
spin.duration = 1.5
layer.add(spin, forKey: "spin")

Alt Katman Dönüşümleri

Perspective uygulamak ve tüm alt katmanlarına aynı anda etki etmek için bir üst katmanda sublayerTransform ayarlayınız; bu, 3B kapsayıcılar ve dönen kart dizileri için kullanışlıdır.

var t = CATransform3DIdentity
t.m34 = -1.0 / 500.0
parentLayer.sublayerTransform = t

zPosition ve Derinlik Sıralaması

zPosition, 3B uzaydaki çizim sırasını denetler. Daha yüksek değerler önde görüntülenir. Katmanlı ve üst üste binen 3B sahneler için bunu döndürmeyle birleştiriniz.

frontCard.zPosition = 10
backCard.zPosition = 0

Dönüşümleri Birleştirme

Etkileri birleştirmek için dönüşümleri art arda uygulayınız. Matris çarpımının değişmeli olmadığını unutmayınız; döndürüp ölçeklemek, ölçekleyip döndürmekten farklıdır.

var t = CATransform3DIdentity
t = CATransform3DRotate(t, .pi / 6, 0, 0, 1)
t = CATransform3DScale(t, 2, 2, 1)

Hızlı Kontrol: Dönüşümler

3B dönüşümlerle ilgili anlayışınızı sınayınız.

Özet: Dönüşümler ve 3B Efektler

Dönüşümler, sınırları değiştirmeden katmanları yeniden şekillendirir: 2B için CGAffineTransform, gerçek 3B için CATransform3D kullanılır. m34 değerini yaklaşık -1/500 olarak ayarlayarak derinlik ekleyiniz, dönüş eksenini anchorPoint ile belirleyiniz ve kapsayıcı perspektifini sublayerTransform ile uygulayınız.

Dönüşümleri bütün olarak veya eksen başına canlandırınız, derinliği zPosition ile sıralayınız ve dönüşümlerin uygulanma sırasının önemli olduğunu unutmayınız.

Sıkça Sorulan Sorular

“Dönüşümler ve 3B Efektler” dersi ücretsiz mi?

Evet — “Dönüşümler ve 3B Efektler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Dönüşümler ve 3B Efektler” dersinde ne öğreneceğim?

Afin ve 3B dönüşümler uygulayın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Dönüşümler ve 3B Efektler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. CALayer Temelleri
  2. Örtük ve Açık Animasyonlar
  3. Dönüşümler ve 3B Efektler
  4. Core Graphics ile Özel Çizim
← Swift Academy Sayfasına Dön