TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
iOS Dev

29 Jul, 11:16

Telegram'da ochish Ulashish Shikoyat qilish

00:20
Библиотека лоадеров для работы с Foundation Models

Когда-то я делился примерами красоты с помощью математики. Но если подрубить TimelineView, Canvas и немного воображения, сейчас можно создать намного более весёлые и интересные кейсы.

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

Для этого можно создать библиотеку компонентов и юзать любую комбинацию, хоть разбивать поэтапно и показывать последовательность, хоть показывать какой-то один из них.

Вот, например, кит, который используется на гифке, которую вы видите:

enum LoaderKit {
static let goldenAngle = Double.pi * (3 - (5.0).squareRoot())

static func fibonacciSphere(_ count: Int) -> [LDVec3] {
guard count > 1 else { return [LDVec3(x: 0, y: 0, z: 0)] }
var pts: [LDVec3] = []
pts.reserveCapacity(count)
for i in 0.. LDVec3 {
let c = cos(a), s = sin(a)
return LDVec3(x: p.x * c + p.z * s, y: p.y, z: -p.x * s + p.z * c)
}

static func rotateX(_ p: LDVec3, _ a: Double) -> LDVec3 {
let c = cos(a), s = sin(a)
return LDVec3(x: p.x, y: p.y * c - p.z * s, z: p.y * s + p.z * c)
}

static func rotateZ(_ p: LDVec3, _ a: Double) -> LDVec3 {
let c = cos(a), s = sin(a)
return LDVec3(x: p.x * c - p.y * s, y: p.x * s + p.y * c, z: p.z)
}

static func dot(_ x: CGFloat, _ y: CGFloat, _ r: CGFloat) -> Path {
Path(ellipseIn: CGRect(x: x - r, y: y - r, width: r * 2, height: r * 2))
}

static func hash(_ i: Int, _ salt: Double = 0) -> Double {
let v = sin(Double(i) * 12.9898 + salt * 78.233 + 0.5) * 43758.5453
return v - v.rounded(.down)
}

static func lerp(_ a: Double, _ b: Double, _ t: Double) -> Double { a + (b - a) * t }
static func smoothstep(_ t: Double) -> Double { let x = min(max(t, 0), 1); return x * x * (3 - 2 * x) }
static func easeOut(_ t: Double) -> Double { 1 - pow(1 - min(max(t, 0), 1), 3) }
}


А целиком примеры уже доступны: ⭐️ здесь или 💰 тут.

😃 iOS Dev

3.8k 0 122 56
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot