Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Захватывающая аркада-лабиринт по мотивам культовой игры восьмидесятых. Управляйте желтым человечком, ешьте кексы и постарайтесь не попадаться на глаза призракам.

Пикман

Аркады, На ловкость, 2D

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Python + Без звука

С этим тегом используют

Программирование IT Программист Обучение IT юмор Разработка YouTube Вертикальное видео Девушки Эротика Сиськи Короткие видео Кот Негатив Все
39 постов сначала свежее
1
ii.dominator
ii.dominator
20 дней назад

Сотни БЕЗДАРТНЫХ ИИ — Пузырь доткомов в мире нейросетей?⁠⁠

Часто натыкаюсь на специализированные ИИ-сервисы: для дизайна, креативов, генерации видео, 3D-моделей и т.д. И знаете, какая мысль у меня зреет?

Многие из них — это просто обертки над базовыми моделями вроде ChatGPT, Gemini, DeepSeek — уже достаточно много, в целом многие неплохие. То же самое с моделями для видео, аудио, звука

Эти проекты подключаются по API к существующим мощным нейросетям, а потом выставляют свой, часто конский, ценник. Это до боли напоминает пузырь доткомов, когда создавались сайты-пустышки, собирались деньги, а потом — скам. История повторяется

Такие сервисы-однодневки, по сути, не несут реальной пользы, лишь создают информационный шум. Особенно любят такое постить крупные каналы, где нет времени на детальную проверку — главное, количество постов

Omagic Ai

— Водяной знак на половину экрана

— Ожидание половину дня, на выходе - видео на 5 секунд

— Качество очень порезанное

— Все сделали, чтобы призвать к покупке, а по факту, это просто промты к нормальным ИИ для генерации видео

Resu-mate

— Не работает на русском языке

— Основные функции (например, ATS-проверка) на бесплатном тарифе выдают ошибки

Jobscan co

— Только с документами на английском

— Лимит всего 5 сканов резюме в МЕСЯЦ, дальше за деньги )

Какой вывод следует из этого?

Вместо того, чтобы прыгать по таким сервисам-обрубкам, лучше научиться работать напрямую с базовыми моделями.

Да, придется немного напрячься: освоить промт-инжиниринг, разобраться, как генерировать качественные картинки, видео и звук...

Но это даст реальное понимание, как все устроено, и полный контроль над результатом!

Мой совет — не тратить время и деньги на пустышки. Погружайтесь в мир настоящих ИИ-инструментов!

Уже по традиции — рекомендую Ai Studio (гайд на пикабу)

Хотел бы рассказать о себе. Я пишу гайды по нейросетям в своем канале, делаю обзоры на ИИ, вникаю во все лично, поэтому очень жду вас в своем канале: https://t.me/+aD8WLBgCF7o0YmUy

Показать полностью
[моё] ChatGPT Чат-бот Тренд Программа Гайд Искусственный интеллект Нейронные сети Арты нейросетей Openai Google Сайт Софт Digital Python Видеомонтаж Видео Без звука Вертикальное видео Короткие видео
0
6
ii.dominator
ii.dominator
29 дней назад
Лайфхак

Как сделать анимацию при помощи Gemini 2.5 Pro?⁠⁠

Можно использовать для видео, для презентаций, для создания живого контента в социальных сетях. Помню еще, что выше писал о том, что можно делать презентации, так вот, скоро будет гайд и про это!

Процесс

1. Генерация идей во вкладке Chat. Приложил скриншот идей, которые получились у меня.

2. Копирование идеи, копирование промта, который приложу ниже с задачей для ИИ — адаптируй идею под этот промт.

3. Скопировать полученный результат и пойти во вкладку Build Apps, запросить создание такой анимации

4. Записать экран, получить и использовать результат!

Промт для шаблона анимации

Начальная Сцена

Объекты: Какие основные объекты видите в начале? Пример: Множество мелких геометрических фигур

Характеристики объектов: Их форма, размер, цвет? Пример: Разные формы (круги, квадраты, треугольники), разные размеры, яркие и контрастные цвета (красный, синий, желтый, зеленый

Расположение/Движение: Как они расположены или двигаются в самом начале? Пример: Хаотично разбросаны по всему экрану, статичны или медленно дрейфуют

Трансформация №1

Что происходит с объектами? Пример: Фигуры начинают двигаться

Характер движения: Как они двигаются? Пример: Движение становится все быстрее и быстрее (ускоряется), траектории хаотичные, но стремятся к центру экрана

Результат действия: Во что они превращаются или как группируются? Пример: Все мелкие фигуры сливаются в один большой объект – идеальный круг

Характеристики результата: Цвет, размер нового объекта? Пример: Круг имеет смешанный цвет изначальных фигур или новый яркий цвет, например, белый или золотой. Он занимает значительную часть экрана.

Трансформация №2

Что происходит с объектом из предыдущего шага? Пример: Большой круг начинает деформироваться и распадаться

Характер движения/распада: Как это происходит? Пример: Круг взрывается сверху вниз, рассыпаясь на множество новых частиц

Результат действия: Во что он превращается? Пример: Появляется большое количество новых геометрических фигур

Характеристики новых объектов: Их форма, размер, цвет, движение? Пример: Новые фигуры – это тонкие вытянутые прямоугольники и острые осколки. Цвета теперь другие – холодные оттенки (голубой, фиолетовый, серебряный). Они плавно падают вниз, заполняя нижнюю часть экрана, возможно, с небольшим эффектом отскока или затухания при касании нижней границы.

Стиль

Какие эмоции или стиль должна передавать анимация? Пример: Энергично, динамично, магическое превращение, современный графический стиль

Необходимо сделать так, чтобы результат запускался в экране предпросмотра кода по кнопке Start, которая не перекрывает анимацию и находится ниже. После остановки анимации кнопка Start перезапускает ее

Нюансы

— Я использовал голосовые сообщения, чтобы описать то, что мне надо на 1 этапе. Так просто быстрее!

— Можно сделать 2-3 попытки, чтобы был наилучший результат. Но не стоит закрывать старую вкладку, информация будет утрачена (либо сохранить проект)

— Файлы с кодом можно выгрузить и использовать на своем ПК, например, открыть где-то еще

💬 Кстати! Знания кода тут не нужны, просто нужно несколько попыток и все обязательно получится!

📌 Я буду ОЧЕНЬ благодарен, если вы оцените пост и посмотрите мой канал в ТГ (ссылка в профиле пикабу). Всем позитива и хорошего настроения, будьте добрее друг к другу!

Показать полностью 2
Программа Чат-бот Гайд ChatGPT Тренд Openai Google Тестирование Дизайнер Сайт Анимация Digital Python Приложение Видеомонтаж Фриланс Видео Без звука Короткие видео Вертикальное видео Длиннопост
5
9
ii.dominator
ii.dominator
2 месяца назад
ChatGPT

Hailuoai — обзор. Бесплатный сервис для генерации видео⁠⁠

Несмотря на то, что на сервисе можно делать картинки, лучше выбрать для этого что-то еще. Это именно для генерации видео.

Возможности

— Две модели для генерации видео: T2V-01 (обычная модель) и T2V-01-Director (позволяет задавать движения камере)

— Пресеты по стилистике видео. Можно выбрать из готовых, так и добавить пресет самостоятельно

— Максимальная длина промта - 2000 символов. Это очень много, достаточно для самых подробных промтов

— Есть генерация видео не только по тексту, но и по картинке, что очень удобно, можно ее оживить, приложил пример с оживлением картинки от GPT.

— Генерация картинок стоит 1 кредит. Необходимость этого под вопросом

Бесплатная версия

— 1000 кредитов на старте (30 кредитов = видео 6 секунд). Хватит на 20-30 видео точно.

— 100 кредитов начисляется каждый день на вход, что равно 3м генерациям видео.

📌 Генерация видео бесплатно тут - hailuoai

📌 Если кому интересно, то пишу про лучшие ИИ в своем авторском канале (ссылка в профиле)

Показать полностью 1
Гайд ChatGPT Нейронные сети Чат-бот Арт Арты нейросетей Искусственный интеллект Дизайнер Сайт Digital Видеомонтаж Тестирование Компьютерная графика Midjourney Киберпанк Python Виртуальная реальность Blender Дизайн Flux Видео Без звука Вертикальное видео Короткие видео Длиннопост
0
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
1
ii.dominator
ii.dominator
2 месяца назад
Искусственный интеллект

ИИ сервис генерации видео — hailuoai (бесплатно дают кредиты, хватает на 10-15 видео)⁠⁠

Сделал еще 3 видео по промтами (и мои комментарии). Получилось неплохо:

1. Золотистый ретривер радостно ловит красный фрисби в прыжке над зеленой травой в парке. Замедленная съемка (slow motion) в момент ловли, брызги слюны разлетаются в солнечном свете. Камера следует за собакой.

Комментарий: камера не следует за собакой, собака ловит фрисби лапами — нужно дополнительно уточнять для ИИ, что собаки не умеют так делать.

2. Кубик льда с застывшим внутри маленьким цветком медленно тает на темной деревянной поверхности. Видео в стиле таймлапс. Образуется лужица воды, цветок освобождается. Освещение драматическое, боковое.

Сойдет. Но сильно резко, хотелось бы более плавную картинку.

3. Вид из окна поезда, мчащегося сквозь живописный осенний лес. За окном быстро проносятся деревья с желтыми и красными листьями. Иногда в кадре мелькают другие поезда на соседних путях. Легкие блики на стекле окна.

А вот это видео мне понравилось, яркое и сочное, несмотря на артефакты, можно его частично обрезать и использовать.

📌 Генерация видео бесплатно тут - hailuoai

📌 Если кому интересно, то пишу про лучшие ИИ в своем авторском канале (ссылка в профиле)

Показать полностью 2
Гайд Программа Тренд ChatGPT Вертикальное видео Монтаж Чат-бот Сайт Тестирование Видеомонтаж Дизайнер Приложение Бесплатно Google Python VPN Apple Видео Без звука Короткие видео Длиннопост
3
6
user4740118
user4740118
2 месяца назад

Как разные современные LLM модели пишут код с физикой⁠⁠

Для сравнения буду использовать единый запрос:

Написать программу на Python, которая показывает, как мяч прыгает внутри вращающегося шестиугольника. Мяч должен подвергаться воздействию гравитации и трения, и он должен реалистично отскакивать от вращающихся стенок

Chatgpt-4o-latest:

import pygame

import math

import random

# Константы

WIDTH, HEIGHT = 800, 600

FPS = 60

GRAVITY = 0.5

FRICTION = 0.99

HEX_SIZE = 200

# Цвета

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

class Ball:

def __init__(self, x, y, radius):

self.x = x

self.y = y

self.radius = radius

self.vx = random.uniform(-5, 5)

self.vy = random.uniform(-5, 5)

def move(self):

self.vy += GRAVITY

self.x += self.vx

self.y += self.vy

# Применение трения

self.vx *= FRICTION

self.vy *= FRICTION

# Проверка на столкновение с гранями шестиугольника

if self.check_collision():

self.bounce()

def check_collision(self):

# Проверка на столкновение с шестиугольником

for i in range(6):

angle = math.pi / 3 * i

x1 = WIDTH // 2 + HEX_SIZE * math.cos(angle)

y1 = HEIGHT // 2 + HEX_SIZE * math.sin(angle)

x2 = WIDTH // 2 + HEX_SIZE * math.cos(angle + math.pi / 3)

y2 = HEIGHT // 2 + HEX_SIZE * math.sin(angle + math.pi / 3)

# Уравнение линии

if self.line_collision(x1, y1, x2, y2):

return True

return False

def line_collision(self, x1, y1, x2, y2):

# Проверка на столкновение с линией

# Уравнение для проверки расстояния до линии

A = y2 - y1

B = x1 - x2

C = x2 * y1 - x1 * y2

distance = abs(A * self.x + B * self.y + C) / math.sqrt(A**2 + B**2)

return distance < self.radius

def bounce(self):

# Отскок от стенки

angle = math.atan2(self.vy, self.vx) + math.pi / 3

speed = math.sqrt(self.vx ** 2 + self.vy ** 2)

self.vx = speed * math.cos(angle)

self.vy = speed * math.sin(angle)

def draw(self, screen):

pygame.draw.circle(screen, BLACK, (int(self.x), int(self.y)), self.radius)

def draw_hexagon(screen):

points = []

for i in range(6):

angle = math.pi / 3 * i

x = WIDTH // 2 + HEX_SIZE * math.cos(angle)

y = HEIGHT // 2 + HEX_SIZE * math.sin(angle)

points.append((x, y))

pygame.draw.polygon(screen, WHITE, points, 2)

def main():

pygame.init()

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("Ball in Rotating Hexagon")

clock = pygame.time.Clock()

ball = Ball(WIDTH // 2, HEIGHT // 2, 15)

angle = 0

running = True

while running:

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

screen.fill(WHITE)

# Вращение шестиугольника

angle += 0.01

draw_hexagon(screen)

# Перемещение и отрисовка мяча

ball.move()

ball.draw(screen)

pygame.display.flip()

clock.tick(FPS)

pygame.quit()

if __name__ == "__main__":

main()

Qwen2.5-Max:

import pygame

import math

# Инициализация Pygame

pygame.init()

# Параметры экрана

WIDTH, HEIGHT = 800, 600

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("Мяч внутри вращающегося шестиугольника")

# Цвета

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

# Параметры шестиугольника

HEXAGON_CENTER = (WIDTH // 2, HEIGHT // 2)

HEXAGON_RADIUS = 200

NUM_SIDES = 6

# Параметры мяча

BALL_RADIUS = 10

ball_pos = [WIDTH // 2 + 50, HEIGHT // 2] # Начальная позиция мяча

ball_velocity = [3, -4] # Начальная скорость мяча

GRAVITY = 0.1 # Ускорение свободного падения

FRICTION = 0.99 # Коэффициент трения

# Параметры вращения

ROTATION_SPEED = 0.02 # Скорость вращения шестиугольника

angle = 0 # Текущий угол поворота

# Функция для отрисовки вращающегося шестиугольника

def draw_hexagon(center, radius, angle):

points = []

for i in range(NUM_SIDES):

# Вычисляем координаты вершин шестиугольника

x = center[0] + radius * math.cos(math.radians(360 / NUM_SIDES * i + angle))

y = center[1] + radius * math.sin(math.radians(360 / NUM_SIDES * i + angle))

points.append((x, y))

pygame.draw.polygon(screen, BLUE, points, 2)

# Основной цикл программы

running = True

clock = pygame.time.Clock()

while running:

screen.fill(WHITE)

# Обработка событий

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

# Обновление угла поворота шестиугольника

angle += ROTATION_SPEED

# Применение гравитации к мячу

ball_velocity[1] += GRAVITY

# Обновление позиции мяча

ball_pos[0] += ball_velocity[0]

ball_pos[1] += ball_velocity[1]

# Проверка столкновений мяча со стенками шестиугольника

collision = False

for i in range(NUM_SIDES):

# Вычисляем координаты текущей и следующей вершины шестиугольника

x1 = HEXAGON_CENTER[0] + HEXAGON_RADIUS * math.cos(math.radians(360 / NUM_SIDES * i + angle))

y1 = HEXAGON_CENTER[1] + HEXAGON_RADIUS * math.sin(math.radians(360 / NUM_SIDES * i + angle))

x2 = HEXAGON_CENTER[0] + HEXAGON_RADIUS * math.cos(math.radians(360 / NUM_SIDES * (i + 1) + angle))

y2 = HEXAGON_CENTER[1] + HEXAGON_RADIUS * math.sin(math.radians(360 / NUM_SIDES * (i + 1) + angle))

# Вектор нормали к стороне

nx = y2 - y1

ny = -(x2 - x1)

norm = math.hypot(nx, ny)

nx /= norm

ny /= norm

# Расстояние от мяча до линии

dx = ball_pos[0] - x1

dy = ball_pos[1] - y1

dist = abs(nx * dx + ny * dy)

if dist < BALL_RADIUS:

# Проекция скорости на нормаль

proj = ball_velocity[0] * nx + ball_velocity[1] * ny

if proj < 0:

# Отражение скорости

ball_velocity[0] -= 2 * proj * nx

ball_velocity[1] -= 2 * proj * ny

# Применение трения

ball_velocity[0] *= FRICTION

ball_velocity[1] *= FRICTION

collision = True

# Если мяч выходит за пределы шестиугольника, корректируем его позицию

if not collision:

direction = math.atan2(ball_pos[1] - HEXAGON_CENTER[1], ball_pos[0] - HEXAGON_CENTER[0])

ball_pos[0] = HEXAGON_CENTER[0] + HEXAGON_RADIUS * math.cos(direction)

ball_pos[1] = HEXAGON_CENTER[1] + HEXAGON_RADIUS * math.sin(direction)

ball_velocity[0] *= -FRICTION

ball_velocity[1] *= -FRICTION

# Отрисовка шестиугольника

draw_hexagon(HEXAGON_CENTER, HEXAGON_RADIUS, angle)

# Отрисовка мяча

pygame.draw.circle(screen, RED, (int(ball_pos[0]), int(ball_pos[1])), BALL_RADIUS)

# Обновление экрана

pygame.display.flip()

# Ограничение частоты обновления

clock.tick(60)

pygame.quit()

DeepSeek-V3-0324:

import pygame

import sys

import math

import numpy as np

# Инициализация Pygame

pygame.init()

# Настройки окна

WIDTH, HEIGHT = 800, 600

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("Мяч в вращающемся шестиугольнике")

# Цвета

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

# Параметры шестиугольника

hexagon_radius = 200 # Радиус описанной окружности

hexagon_center = (WIDTH // 2, HEIGHT // 2)

hexagon_angle = 0 # Текущий угол поворота

hexagon_rotation_speed = 0.01 # Скорость вращения шестиугольника

# Параметры мяча

ball_radius = 20

ball_pos = np.array([WIDTH // 2, HEIGHT // 2 - 100], dtype=float)

ball_vel = np.array([0, 0], dtype=float)

gravity = 0.2

friction = 0.99 # Коэффициент трения (1 - нет трения, <1 - есть трение)

elasticity = 0.8 # Коэффициент упругости (1 - абсолютно упругий удар)

# Функция для получения вершин шестиугольника

def get_hexagon_vertices(center, radius, angle):

vertices = []

for i in range(6):

theta = angle + i * math.pi / 3 # 60 градусов между вершинами

x = center[0] + radius * math.cos(theta)

y = center[1] + radius * math.sin(theta)

vertices.append((x, y))

return vertices

# Функция для проверки столкновения с шестиугольником

def check_collision(ball_pos, ball_radius, hex_vertices):

for i in range(len(hex_vertices)):

# Получаем текущую и следующую вершины (для создания стороны)

p1 = np.array(hex_vertices[i])

p2 = np.array(hex_vertices[(i + 1) % len(hex_vertices)])

# Вектор стороны

edge = p2 - p1

edge_length = np.linalg.norm(edge)

edge_normalized = edge / edge_length

# Вектор от вершины к центру мяча

ball_to_p1 = ball_pos - p1

# Проекция на сторону (скалярное произведение)

projection = np.dot(ball_to_p1, edge_normalized)

# Находим ближайшую точку на стороне к мячу

if projection < 0:

closest_point = p1

elif projection > edge_length:

closest_point = p2

else:

closest_point = p1 + projection * edge_normalized

# Расстояние от мяча до ближайшей точки

distance = np.linalg.norm(ball_pos - closest_point)

# Если расстояние меньше радиуса мяча - столкновение

if distance < ball_radius:

# Нормаль к стороне (перпендикуляр)

normal = np.array([-edge[1], edge[0]])

normal = normal / np.linalg.norm(normal)

# Убедимся, что нормаль направлена внутрь шестиугольника

to_center = hexagon_center - closest_point

if np.dot(normal, to_center) < 0:

normal = -normal

return True, normal, closest_point

return False, None, None

# Основной цикл

clock = pygame.time.Clock()

running = True

while running:

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

# Очистка экрана

screen.fill(BLACK)

# Обновление угла шестиугольника

hexagon_angle += hexagon_rotation_speed

# Получение вершин шестиугольника

hex_vertices = get_hexagon_vertices(hexagon_center, hexagon_radius, hexagon_angle)

# Отрисовка шестиугольника

pygame.draw.polygon(screen, WHITE, hex_vertices, 2)

# Применение гравитации

ball_vel[1] += gravity

# Применение трения

ball_vel *= friction

# Обновление позиции мяча

ball_pos += ball_vel

# Проверка столкновения с шестиугольником

collision, normal, collision_point = check_collision(ball_pos, ball_radius, hex_vertices)

if collision:

# Вычисляем относительную скорость

rel_vel = ball_vel

# Вычисляем скорость вдоль нормали

vel_along_normal = np.dot(rel_vel, normal)

# Если мяч движется внутрь шестиугольника, отражаем его

if vel_along_normal < 0:

# Импульс отскока с учетом упругости

impulse = -(1 + elasticity) * vel_along_normal

ball_vel += impulse * normal

# Корректируем позицию, чтобы мяч не застревал в стене

penetration = ball_radius - np.linalg.norm(ball_pos - collision_point)

ball_pos += penetration * normal

# Отрисовка мяча

pygame.draw.circle(screen, RED, (int(ball_pos[0]), int(ball_pos[1])), ball_radius)

# Обновление экрана

pygame.display.flip()

clock.tick(60)

pygame.quit()

sys.exit()

Llama-4-maverick-17b-128e:

import pygame

import math

# Константы

WIDTH, HEIGHT = 800, 600

FPS = 60

GRAVITY = 0.5

FRICTION = 0.99

# Цвета

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

RED = (255, 0, 0)

# Инициализация Pygame

pygame.init()

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("Ball in Rotating Hexagon")

clock = pygame.time.Clock()

# Класс мяча

class Ball:

def __init__(self, x, y, radius):

self.x = x

self.y = y

self.radius = radius

self.vel_y = 0

def move(self):

self.vel_y += GRAVITY

self.y += self.vel_y

# Учет трения

self.vel_y *= FRICTION

def bounce(self):

self.vel_y = -self.vel_y * FRICTION

def draw(self, surface):

pygame.draw.circle(surface, RED, (int(self.x), int(self.y)), self.radius)

# Функция для проверки столкновения с шестиугольником

def check_collision(ball, angle, hex_radius):

# Проверка, находится ли мяч внутри шестиугольника

for i in range(6):

x1 = WIDTH // 2 + hex_radius * math.cos(math.radians(i * 60 + angle))

y1 = HEIGHT // 2 + hex_radius * math.sin(math.radians(i * 60 + angle))

x2 = WIDTH // 2 + hex_radius * math.cos(math.radians((i + 1) * 60 + angle))

y2 = HEIGHT // 2 + hex_radius * math.sin(math.radians((i + 1) * 60 + angle))

# Уравнение для проверки пересечения с линией

if (x1 - x2) * (ball.y - y1) - (y1 - y2) * (ball.x - x1) < 0:

ball.bounce()

# Основной цикл

def main():

ball = Ball(WIDTH // 2, HEIGHT // 2, 15)

angle = 0

hex_radius = 200

running = True

while running:

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

screen.fill(WHITE)

# Рисуем вращающийся шестиугольник

points = []

for i in range(6):

x = WIDTH // 2 + hex_radius * math.cos(math.radians(i * 60 + angle))

y = HEIGHT // 2 + hex_radius * math.sin(math.radians(i * 60 + angle))

points.append((x, y))

pygame.draw.polygon(screen, BLACK, points)

# Двигаем и рисуем мяч

ball.move()

check_collision(ball, angle, hex_radius)

ball.draw(screen)

# Обновление угла вращения

angle += 1

pygame.display.flip()

clock.tick(FPS)

pygame.quit()

if __name__ == "__main__":

main()

Claude 3.7 Sonnet:

import pygame

import sys

import math

import numpy as np

# Инициализация Pygame

pygame.init()

# Параметры экрана

WIDTH, HEIGHT = 800, 600

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("Мяч в шестиугольнике")

# Цвета

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

RED = (255, 0, 0)

BLUE = (0, 0, 255)

# Параметры физики

FPS = 60

GRAVITY = 0.5

FRICTION = 0.99

RESTITUTION = 0.8 # Коэффициент восстановления при ударе

# Параметры шестиугольника

HEX_RADIUS = 200

hex_center = [WIDTH // 2, HEIGHT // 2]

hex_angle = 0

hex_rotation_speed = 0.01

# Параметры мяча

ball_radius = 15

ball_pos = [WIDTH // 2, HEIGHT // 2 - 100]

ball_vel = [0, 0]

# Функция для получения вершин шестиугольника

def get_hex_vertices():

vertices = []

for i in range(6):

angle = hex_angle + i * math.pi / 3

x = hex_center[0] + HEX_RADIUS * math.cos(angle)

y = hex_center[1] + HEX_RADIUS * math.sin(angle)

vertices.append((x, y))

return vertices

# Функция для определения расстояния от точки до отрезка

def point_to_line_distance(point, line_start, line_end):

# Вектор линии

line_vec = (line_end[0] - line_start[0], line_end[1] - line_start[1])

# Вектор от начала линии до точки

point_vec = (point[0] - line_start[0], point[1] - line_start[1])

# Длина линии в квадрате

line_len_sq = line_vec[0]**2 + line_vec[1]**2

# Проекция point_vec на line_vec

t = max(0, min(1, (point_vec[0]*line_vec[0] + point_vec[1]*line_vec[1]) / line_len_sq))

# Ближайшая точка на линии

projection = (

line_start[0] + t * line_vec[0],

line_start[1] + t * line_vec[1]

)

# Расстояние от точки до проекции

return (

math.sqrt((point[0] - projection[0])**2 + (point[1] - projection[1])**2),

projection,

t

)

# Основной игровой цикл

clock = pygame.time.Clock()

while True:

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

sys.exit()

# Очистка экрана

screen.fill(BLACK)

# Обновление угла шестиугольника

hex_angle += hex_rotation_speed

# Получение вершин шестиугольника

vertices = get_hex_vertices()

# Рисование шестиугольника

pygame.draw.polygon(screen, WHITE, vertices, 2)

# Применение гравитации к мячу

ball_vel[1] += GRAVITY

# Обновление позиции мяча

ball_pos[0] += ball_vel[0]

ball_pos[1] += ball_vel[1]

# Проверка столкновений со стенками шестиугольника

for i in range(6):

v1 = vertices[i]

v2 = vertices[(i + 1) % 6]

# Расстояние от мяча до стороны шестиугольника

distance, projection, t = point_to_line_distance(ball_pos, v1, v2)

# Если мяч касается или пересекает стенку

if distance <= ball_radius and 0 <= t <= 1:

# Нормаль к стенке (перпендикуляр)

normal = (

-(v2[1] - v1[1]),

v2[0] - v1[0]

)

# Нормализация вектора нормали

normal_length = math.sqrt(normal[0]**2 + normal[1]**2)

normal = (normal[0] / normal_length, normal[1] / normal_length)

# Направление от стенки к мячу

if (ball_pos[0] - projection[0]) * normal[0] + (ball_pos[1] - projection[1]) * normal[1] < 0:

normal = (-normal[0], -normal[1])

# Коррекция позиции мяча

overlap = ball_radius - distance

ball_pos[0] += normal[0] * overlap

ball_pos[1] += normal[1] * overlap

# Скорость стенки в точке удара из-за вращения

wall_vel = [

-hex_rotation_speed * (projection[1] - hex_center[1]),

hex_rotation_speed * (projection[0] - hex_center[0])

]

# Относительная скорость мяча к стенке

rel_vel = [

ball_vel[0] - wall_vel[0],

ball_vel[1] - wall_vel[1]

]

# Проекция относительной скорости на нормаль

normal_vel = rel_vel[0] * normal[0] + rel_vel[1] * normal[1]

# Отражение только если мяч движется в сторону стенки

if normal_vel < 0:

# Изменение скорости мяча при отражении

ball_vel[0] -= (1 + RESTITUTION) * normal_vel * normal[0]

ball_vel[1] -= (1 + RESTITUTION) * normal_vel * normal[1]

# Добавление скорости стенки

ball_vel[0] += wall_vel[0]

ball_vel[1] += wall_vel[1]

# Применение трения

tangent = (-normal[1], normal[0])

tangent_vel = rel_vel[0] * tangent[0] + rel_vel[1] * tangent[1]

ball_vel[0] -= tangent_vel * tangent[0] * (1 - FRICTION)

ball_vel[1] -= tangent_vel * tangent[1] * (1 - FRICTION)

# Применение общего трения

ball_vel[0] *= FRICTION

ball_vel[1] *= FRICTION

# Рисование мяча

pygame.draw.circle(screen, RED, (int(ball_pos[0]), int(ball_pos[1])), ball_radius)

# Обновление экрана

pygame.display.flip()

clock.tick(FPS)

Grok-3:

import pygame

import math

import numpy as np

# Инициализация Pygame

pygame.init()

# Параметры окна

WIDTH, HEIGHT = 800, 600

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("Прыгающий мяч в шестиугольнике")

# Цвета

WHITE = (255, 255, 255)

RED = (255, 0, 0)

BLACK = (0, 0, 0)

# Параметры шестиугольника

HEXAGON_RADIUS = 200

HEXAGON_CENTER = (WIDTH // 2, HEIGHT // 2)

HEXAGON_SIDES = 6

rotation_angle = 0

rotation_speed = 0.02 # Скорость вращения (радианы за кадр)

# Параметры мяча

BALL_RADIUS = 10

ball_pos = np.array([WIDTH // 2, HEIGHT // 2], dtype=float)

ball_vel = np.array([0.0, 0.0]) # Начальная скорость

GRAVITY = 0.2 # Гравитация

FRICTION = 0.99 # Коэффициент трения (потеря скорости)

BOUNCE = 0.8 # Коэффициент упругости (потеря энергии при отскоке)

# Функция для получения координат вершин шестиугольника

def get_hexagon_vertices(center, radius, angle):

vertices = []

for i in range(HEXAGON_SIDES):

vertex_angle = 2 * math.pi * i / HEXAGON_SIDES + angle

x = center[0] + radius * math.cos(vertex_angle)

y = center[1] + radius * math.sin(vertex_angle)

vertices.append((x, y))

return vertices

# Функция для вычисления нормали к стороне шестиугольника

def get_side_normal(p1, p2):

side_vector = np.array([p2[0] - p1[0], p2[1] - p1[1]])

normal = np.array([-side_vector[1], side_vector[0]])

return normal / np.linalg.norm(normal)

# Функция для проверки столкновения и отскока мяча от стороны шестиугольника

def check_collision_and_bounce(ball_pos, ball_vel, vertices):

for i in range(len(vertices)):

p1 = vertices[i]

p2 = vertices[(i + 1) % len(vertices)]

# Вектор от p1 к p2

side_vector = np.array([p2[0] - p1[0], p2[1] - p1[1]])

side_length = np.linalg.norm(side_vector)

side_dir = side_vector / side_length

# Вектор от p1 к мячу

ball_vector = np.array([ball_pos[0] - p1[0], ball_pos[1] - p1[1]])

# Проекция ball_vector на side_vector

t = np.dot(ball_vector, side_dir)

t = max(0, min(side_length, t)) # Ограничиваем t в пределах стороны

# Ближайшая точка на стороне к мячу

closest_point = np.array(p1) + t * side_dir

# Вектор от мяча к ближайшей точке

dist_vector = closest_point - ball_pos

dist = np.linalg.norm(dist_vector)

if dist <= BALL_RADIUS:

# Нормаль к стороне

normal = get_side_normal(p1, p2)

# Если мяч "внутри" шестиугольника, инвертируем нормаль

if np.dot(ball_vector, normal) < 0:

normal = -normal

# Отскок: отражение скорости относительно нормали

v_normal = np.dot(ball_vel, normal) * normal

v_tangent = ball_vel - v_normal

ball_vel[:] = v_tangent - v_normal * BOUNCE # Упругость

# Корректировка позиции мяча, чтобы он не "залипал" в стене

overlap = BALL_RADIUS - dist

ball_pos[:] += normal * overlap

return ball_pos, ball_vel

# Основной игровой цикл

clock = pygame.time.Clock()

running = True

while running:

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

# Очистка экрана

screen.fill(BLACK)

# Вращение шестиугольника

rotation_angle += rotation_speed

hexagon_vertices = get_hexagon_vertices(HEXAGON_CENTER, HEXAGON_RADIUS, rotation_angle)

# Обновление позиции мяча (гравитация и трение)

ball_vel[1] += GRAVITY # Гравитация

ball_vel *= FRICTION # Трение

ball_pos += ball_vel

# Проверка столкновений и отскока от стенок шестиугольника

ball_pos, ball_vel = check_collision_and_bounce(ball_pos, ball_vel, hexagon_vertices)

# Отрисовка шестиугольника

pygame.draw.polygon(screen, WHITE, hexagon_vertices, 2)

# Отрисовка мяча

pygame.draw.circle(screen, RED, ball_pos.astype(int), BALL_RADIUS)

# Обновление экрана

pygame.display.flip()

# Ограничение FPS

clock.tick(60)

# Завершение программы

pygame.quit()

Показать полностью 6
Искусственный интеллект Нейронные сети Чат-бот Код Физика Python Видео Без звука Короткие видео Длиннопост
4
5
rugert
rugert
3 месяца назад
Лига программистов

Делаем первого бота для нового мессенджера MAX на Python⁠⁠

Не прошло и недели с момента выхода нового мессенджера MAX от VK, а мы сейчас сделаем для него своего первого бота.


ШАГ 1. Регистрируем своего бота и получаем для него токен.

Похоже на ТГ. Пишем в поиске "MasterBot", должны увидеть в результатах официальный бот masterbot

Выбираем команду /create, вводим имя бота по правилам (должно заканчиваться на bot). Если такой бот есть, то вас попросят ввести имя и потом покажут сообщение с токеном бота

Делаем первого бота для нового мессенджера MAX на Python Разработка, Код, Python, Программирование, Чат-бот, Гайд, Telegram (ссылка), Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост, Мессенджер MAX

ШАГ 2. Устанавливаем maxgram

На момент написания официальная библиотека от разработчиков - только под JS. А для Python нам понадобится опенсорсная библиотека maxgram.

pip install maxgram

Библиотека пока совсем новая, но поддерживает уже прием и отправку сообщений, установку подсказок и кнопки бота.


ШАГ 3. Делаем эхо-бота, играющего в пинг-понг

Он будет обрабатывать команды и повторять сообщения пользователя

Создаем файл, например, bot.py - работаем дальше в нем. Импортируем в него класс Bot, инициализируем бота и устанавливаем подсказки для команд бота - они всплывут, если ввести слэш (работает на мобильном клиенте)

from maxgram import Bot

bot = Bot("YOUR_BOT_TOKEN")

# Установка подсказок для команд бота

bot.set_my_commands({

"help": "Получить помощь",

"ping": "Проверка работы бота",

"hello": "Приветствие"

})

Вместо YOUR_BOT_TOKEN используйте полученный ранее токен.

⚠️ Правильнее не хранить его так в коде, конечно, а использовать файл .env, но в статье показываю только основы по самому боту.

Дальше добавляем обработчики на событие присоединения к боту bot.on("bot_started") и на обработку сообщения @bot.hears("ping"), чтобы бот отвечал pong на ping

# Обработчик события запуска бота

@bot.on("bot_started")

def on_start(context):

context.reply("Привет! Скажи что-нибудь и я повторю это!")

# Обработчик для сообщения с текстом 'ping'

@bot.hears("ping")

def ping_handler(context):

context.reply("pong")

Теперь научимся повторять сообщения пользователя. Добавляем обработчик @bot.on("message_created")

# Обработчик для всех остальных входящих сообщений

@bot.on("message_created")

def echo(context):

# Проверяем, что есть сообщение и тело сообщения

if context.message and context.message.get("body") and "text" in context.message["body"]:

# Получаем текст сообщения

text = context.message["body"]["text"]

# Проверяем, что это не команда и не специальные сообщения с обработчиками

if not text.startswith("/") and text != "ping":

context.reply(text)

Наконец, добавляем блок запуска бота

# Запуск бота

if __name__ == "__main__":

try:

bot.run()

except KeyboardInterrupt:

bot.stop()

Теперь, если вы запустите получившийся python файл (python bot.py в нашем случае), то ваш бот должен уметь повторять за пользователем и играть в пинг-понг

Делаем первого бота для нового мессенджера MAX на Python Разработка, Код, Python, Программирование, Чат-бот, Гайд, Telegram (ссылка), Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост, Мессенджер MAX

ШАГ 4. Добавляем кнопки

Для этого импортируем из библиотеки класс клавиатуры и создаем нужные нам кнопки

from maxgram.keyboards import InlineKeyboard

# Создание клавиатуры

main_keyboard = InlineKeyboard(

[

{"text": "Отправить новое сообщение", "callback": "button1"},

],

[

{"text": "Изменить сообщение", "callback": "button2"},

{"text": "Показать Назад", "callback": "button3"}

],

[

{"text": "Открыть ссылку", "url": "https://pypi.org/project/maxgram/"}

]

)

Принцип такой: каждый список - это одна строка кнопок. Один словарь внутри списка - одна кнопка. Если несколько словарей добавить внутрь списка, то будет несколько кнопок равной ширины в одной строке. Сейчас посмотрим, как это выглядит.

Пусть клавиатура будет показываться при отправке команды /keyboard - добавляем обработчик

# Отправить клавиатуру по команде '/keyboard'

@bot.command("keyboard")

def keyboard_command(context):

context.reply(

"Вот клавиатура. Выбери одну из опций:",

keyboard=main_keyboard

)

Если запустить сейчас бота и отправить команду /keyboard, то увидите примерно следующее

Делаем первого бота для нового мессенджера MAX на Python Разработка, Код, Python, Программирование, Чат-бот, Гайд, Telegram (ссылка), Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост, Мессенджер MAX

Но нужно еще обрабатывать нажатия на сами кнопки


ШАГ 5. Обрабатываем нажатия на кнопки

Используем @bot.on("message_callback"). Уникальные названия кнопок (которые выше задавали, как button1, button2, button3) принимаем в обработчике из context.payload, а отвечаем на нажатия с помощью context.reply_callback()

# Обработчик нажатий на кнопки

@bot.on("message_callback")

def handle_callback(context):

button = context.payload

if button == "button1":

context.reply_callback("Вы отправили новое сообщение")

elif button == "button2":

context.reply_callback("Вы изменили текущее сообщение", is_current=True)

elif button == "button3":

context.reply_callback("Вы изменили текущее сообщение с новой клавиатурой",

keyboard=InlineKeyboard(

[{"text": "Вернуться к меню", "callback": "back_to_menu"}]

),

is_current=True)

elif button == "back_to_menu":

context.reply_callback(

"Вернемся к основному меню",

keyboard=main_keyboard,

is_current=True

)

При этом специальный параметр is_current = True задает, чтобы новое сообщение показывалось путем редактирования текущего, а не через отправку нового.


Первая часть завершена. Если будет интерес, то в следующих частях сделаем того самого AI-ассистента, который показан в начале гайда на видео.

Кстати, потестить ИИ-ассистента на MAX можно прямо сейчас по ссылке - max.ru/AssistantsBot

Это обычный бесплатный чат-бот с ИИ. Но первый на MAX! Или один из первых.

Пишу о своих разработках и о том, как делаю стартап, в ТГ-канале t.me/it_sabat

Показать полностью 3
[моё] Разработка Код Python Программирование Чат-бот Гайд Telegram (ссылка) Видео Без звука Вертикальное видео Короткие видео Длиннопост Мессенджер MAX
3
3
ii.dominator
ii.dominator
3 месяца назад
Искусственный интеллект

Лучшие нейросети по категориям. Тестировал лично в рабочих задачах. Бесплатные модели и пробные версии⁠⁠

Каждый месяц появляются новые инструменты, а существующие становятся еще лучше. Решил составить свою личную подборку реально работающих на практике ИИ-инструментов.

Что может ИИ прямо сейчас?

  • Текст: От быстрых постов для социальных сетей до глубоких исследований на десятки страниц – ИИ стал незаменимым помощником в работе с текстом.

  • Графика: Генерация уникальных изображений по описанию, создание 3D-моделей, инфографики и даже прототипов дизайна для сайтов и приложений – все это доступно в несколько кликов.

  • Видео: Появляется все больше моделей для генерации видеоконтента, включая бесплатные варианты для экспериментов.

  • Аудио: Озвучка текстов реалистичными голосами и создание оригинальных звуковых дорожек – отличное дополнение к текстовому и видеоконтенту.

  • Аналитика: ИИ помогает находить скрытые закономерности, тренды и аномалии в больших объемах данных, будь то анализ таблиц, документов или PDF-файлов, с возможностью визуализации.

  • Рабочие задачи: Составление юридических договоров, разработка маркетинговых креативов, анализ данных (например, жалоб пациентов) – ИИ автоматизирует и упрощает множество рутинных и сложных процессов.

  • Код: Нейросети активно используются для написания, отладки и оптимизации кода, меняя ландшафт разработки ПО.

Лучшие нейросети по категориям. Тестировал лично в рабочих задачах. Бесплатные модели и пробные версии Гайд, Чат-бот, Тренд, ChatGPT, Нейронные сети, Тестирование, Дизайнер, Программа, Сайт, Видеомонтаж, Искусственный интеллект, Будущее, Digital, Google, Python, Компьютерная графика, Стартап, Дизайн, Видео, Без звука, Короткие видео, Длиннопост

Дополнительные идеи от Джеминай

ИИ-чаты (Языковые модели)

  • Gemini 2.5 Pro: Отличный выбор для создания формул и интеграции с Google-сервисами. Огромное контекстное окно (2 млн токенов).

  • Grok 3: Подходит для широкого круга задач, включает режим редактирования фото и глубокий поиск.

  • Chat GPT o3 mini: Самая популярная модель на рынке с лучшим режимом глубокого поиска информации.

  • Qwen 2.5 max: Отличная модель, работающая без VPN. Умеет распознавать картинки и писать код.

  • Deep Seek r1 + v3: Доступно мобильное приложение, работает без VPN.

  • Сlaude 3.7: Лучшая модель для написания кода и решения математических задач.

Изображения

  • Imagen-3.0: ИИ для генерации картинок от Google с высочайшим качеством. Дополнительно – генерация музыки. (Обычно доступ через API или интегрированные продукты Google)

  • Kling: Качественная генерация контента, одна из лучших моделей для создания картинок и видео.

  • Napkin: Бесплатный инструмент для создания инфографики из текста.

  • Vizcom: Нейросеть для имитации 3D-концептов объектов.

  • Usegalileo: Дизайн мобильного приложения или сайта в один клик.

  • Visily: Удобный аналог Figma со встроенным ИИ.

Видео

  • Kling: Лидер по качеству генерации видео на данный момент (ограниченное число токенов).

  • Hailuo: Много настроек, 1500 бесплатных токенов, отличные результаты.

  • Genmo: Создает очень крутые видео (1 бесплатная генерация в день).

  • Sora: Модель от OpenAI, доступна в подписке Plus (требуется геолокация США).

  • Pika: Создание видео и "оживление" картинок. Бесплатные токены.

  • Synthesia: Множество опций: создание аватаров, ИИ-дубляж, гибкие настройки.

Звук

  • Openai: Озвучка текста от OpenAI с множеством настроек голоса.

  • Runwayml: Генерация аудио, плюс инструменты для фото и видео.

  • Minimax: Сервис создания аудио (связан с Hailuo), много голосов, быстрая генерация.

Сервисы / Платформы

  • Huggingface: Огромный репозиторий бесплатных нейросетей для разных задач, включая те, что можно установить локально.

  • Ollama: Более простой способ запускать ИИ-модели локально на вашем ПК.

  • lmarena (Chatbot Arena): Позволяет бесплатно протестировать и сравнить многие модели, включая платные (например, разные версии GPT).

Ссылок нет, но они в канале, который в шапке профиля. Такие правила площадки.

Показать полностью 1
Гайд Чат-бот Тренд ChatGPT Нейронные сети Тестирование Дизайнер Программа Сайт Видеомонтаж Искусственный интеллект Будущее Digital Google Python Компьютерная графика Стартап Дизайн Видео Без звука Короткие видео Длиннопост
9
33
Sosiskavlecy
3 месяца назад
Инженериум DIY

Привет, Пикабу!⁠⁠

Предыстория

Случалось ли у вас такое, что чего-то хочется, но денег нет? Вот и у меня вчера случилось подобное.

Я захотел себе коробку передач для руля Defender, но денег нет, да и не очень то хочется их тратить на КП. Решил я собрать эту коробку передач сам. Пошёл смотреть что у меня есть, а ничего кроме пары Arduino и ESP у меня собственно и нету.

Нужно извращаться по другому. Что любят все DIYщики? Правильно - колхоз. У меня моё извращенство даже даже колхозом назвать сложно, это какой-то уже другой уровень :D

Решил, что буду отслеживать всё через OpenCV вебкой. Звучит странно, да? Но вы ещё не видели самой конструкции.

Привет, Пикабу! Своими руками, Игры, Игровой руль, Коробка передач, Поделки, Python, Opencv, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

А вы что ожидали?)

Извините все, кого я сейчас довёл до слёз. Остальные, кто ещё в состоянии воспринимать этот бред, могли уже заметить, что на "рычаге" КП есть красный круг. Его то я камерой и отслеживаю.

К сожалению тут не полный колхоз, т.к. веб камера есть не у всех, но и тут есть решение. Скачайте любое приложение из интернета чтобы камеру телефона как веб-камеру использовать, таких там навалом.

Дальше, ставим камеру прямо над КП. Если она будет чуть под углом, ничего страшного, главное чтоб видела рычаг в любом положении. Можно повесить на монитор, или на полку над монитором, как это сделал я.

Привет, Пикабу! Своими руками, Игры, Игровой руль, Коробка передач, Поделки, Python, Opencv, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Теперь самое сложное позади. Берём код с моего Github. Там где-то будет gear_detector.py. Ну и ставим все нужные библиотеки, они в requirements.txt. Потом запускаем код, проходим калибровку передач и радуемся! Код будет зажимать кнопку на виртуальном контроллере в зависимости от передачи.

Привет, Пикабу! Своими руками, Игры, Игровой руль, Коробка передач, Поделки, Python, Opencv, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Как оно выглядит

Вот так выглядит сама программа, процессор сильно не кушает(около 5%), Яндекс браузеры не устанавливает. Если коробку сильно не двигать, то работает вполне чётко.

Если вы тоже по каким-то причинам надумаете собирать ТАКОЕ, то всегда буду рад помочь в комментариях.

Надеюсь вы от души посмеялись :D

Показать полностью 3 1
[моё] Своими руками Игры Игровой руль Коробка передач Поделки Python Opencv Видео Без звука Вертикальное видео Короткие видео Длиннопост
7
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии