Работа с Чат GPT. Закончились нервы
В первых строках своего поста, поздравляю прекрасную половину нашего человечества с замечательным весенним праздником!
А теперь к сути. Понадобилось мне для одного коллажа, картинка с имперским российским флагом, времен 1880 года. Чтобы вы понимали, он выглядит вот так:
С гербом вот так:
И без вариантов!
Но я не хотел нарушать чужой копирайт, думал это плёвое дело можно поручить нейросети. Фиг там! Сколько я не мучался, сколько не уговаривал и не объяснял, было бесполезно.
Через час, нервы уже сдали.
Немного остыв, я попробовал еще раз.
Пытался давить на аналогии, на даты. Бесполезно.
Указал дотошное описание, он его прекрасно понял и сделал.
Нервы кончились. Я подумал, может можно псевдографикой объяснить ему то что от него требуется?
флаг Российской империи (ок. 1880)
(упрощённая схема)
|\
| \
| \
| \
| \
__________
/ ЧЁРНЫЙ \
/~~~~~~~~~~\
/~~~~ (двуглавый) ~~~\ <- Верхняя полоса: чёрная
\~~~~ ОРЁЛ ~~~/
\~~~~~~~~~~~/
\___ ЗОЛОТОЙ ___/ <- Средняя полоса: золотая (или жёлтая)
/~~~~~~~~~~\
/~~~~~ ~~~\
/~~~~ ГЕРБ ~~~\
\~~~~~~~~~~~/
\____ БЕЛЫЙ ____/ <- Нижняя полоса: белая
~~~~~~
(«развевание» схематично показано волнистыми линиями)
Упрощённое изображение двуглавого орла:
/\
( )
( /\ )
/ \
( ⚔ ⚔ ) <-- условные лапы/атрибуты
\ /\ /
( \/ )
( )
\/
Получил вот такой результат.
Но мы не привыкли отступать. В ход пошла тяжелая артиллерия.
Ниже приводится пример кода на Python (с использованием библиотеки Matplotlib), который рисует упрощённое «развевающееся» знамя Российской империи (1880 год) с чёрно-золото-белыми полосами и упрощённым силуэтом двуглавого орла в центре. При запуске код создаст окно с изображением флага:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def wave(x, amplitude=0.01, frequency=3.0, phase=0.0):
"""
Возвращает небольшое колебание (для эффекта «волны»),
зависящее от координаты x.
"""
return amplitude * np.sin(2.0 * np.pi * frequency * x + phase)
def create_stripe_polygon(x_vals, y_bottom, y_top, color='white'):
"""
Создаёт объект Polygon для одной горизонтальной полосы,
где верхняя и нижняя граница «волнистые».
- x_vals: массив координат x (от 0 до 1)
- y_bottom, y_top: функции или константы для нижней и верхней границ по y
- color: цвет закраски полосы
"""
# Точки верхней границы (идём слева направо)
top_points = [(x, y_top(x)) for x in x_vals]
# Точки нижней границы (идём справа налево, чтобы получился замкнутый контур)
bottom_points = [(x, y_bottom(x)) for x in reversed(x_vals)]
# Все точки вместе образуют замкнутый контур полосы
polygon_points = top_points + bottom_points
return Polygon(polygon_points, closed=True, facecolor=color, edgecolor='none')
# Сетка x для построения «волны»
x_vals = np.linspace(0, 1, 200)
# Определяем три «полосы»:
# 1) Чёрная (верхняя): от y=2/3 до y=1
# 2) Золотая (средняя): от y=1/3 до y=2/3
# 3) Белая (нижняя): от y=0 до y=1/3
# Чтобы полосы не пересекались, используем одинаковые «волны» для верхней и нижней границы каждой полосы.
# Для наглядности чуть сдвинем фазу волны (phase), чтобы полосы «колыхались» по-разному.
black_top = lambda x: 1.0 + wave(x, amplitude=0.01, frequency=3.0, phase=0.0)
black_bottom = lambda x: (2.0/3.0) + wave(x, amplitude=0.01, frequency=3.0, phase=0.0)
gold_top = lambda x: (2.0/3.0) + wave(x, amplitude=0.01, frequency=3.0, phase=np.pi/2)
gold_bottom = lambda x: (1.0/3.0) + wave(x, amplitude=0.01, frequency=3.0, phase=np.pi/2)
white_top = lambda x: (1.0/3.0) + wave(x, amplitude=0.01, frequency=3.0, phase=np.pi)
white_bottom = lambda x: 0.0 + wave(x, amplitude=0.01, frequency=3.0, phase=np.pi)
# Создаём три полосы
black_stripe = create_stripe_polygon(x_vals, black_bottom, black_top, color='black')
gold_stripe = create_stripe_polygon(x_vals, gold_bottom, gold_top, color='gold')
white_stripe = create_stripe_polygon(x_vals, white_bottom, white_top, color='white')
# Далее – упрощённое изображение двуглавого орла в центре флага.
# Для наглядности пусть это будет «силуэт» из нескольких точек вокруг (0.5, 0.5).
# Можно усложнить, добавив деталей, но ниже – очень условная форма.
def create_eagle_polygon(cx=0.5, cy=0.5, size=0.1, color='black'):
"""
Создаёт упрощённый «двуглавый орёл» как многоугольник вокруг точки (cx, cy).
size определяет примерный масштаб.
"""
# Ниже — набор координат, формирующих некий «двойной» силуэт (упрощённо)
# Ориентируемся на то, что (cx, cy) — центр.
points = [
(cx - 0.1 * size, cy + 0.2 * size), # Левое «крыло» верх
(cx, cy + 0.3 * size), # Верх между головами
(cx + 0.1 * size, cy + 0.2 * size), # Правое «крыло» верх
(cx + 0.08* size, cy + 0.07* size), # Правая голова
(cx + 0.05* size, cy + 0.05* size),
(cx + 0.07* size, cy - 0.02* size),
(cx + 0.02* size, cy - 0.05* size),
(cx - 0.02* size, cy - 0.05* size),
(cx - 0.07* size, cy - 0.02* size),
(cx - 0.05* size, cy + 0.05* size),
(cx - 0.08* size, cy + 0.07* size), # Левая голова
]
return Polygon(points, closed=True, facecolor=color, edgecolor='none')
eagle = create_eagle_polygon(cx=0.5, cy=0.5, size=1.0, color='black')
# Создаём холст
fig = plt.figure(figsize=(6,4))
ax = plt.gca()
# Добавляем полосы и орла на оси
for stripe in [white_stripe, gold_stripe, black_stripe]:
ax.add_patch(stripe)
ax.add_patch(eagle)
# Убираем всё лишнее с осей
plt.xlim(0, 1)
plt.ylim(0, 1)
ax.set_aspect('equal') # Чтобы флаг не искажался
ax.axis('off') # Скрываем рамку и отметки
plt.title("Флаг Российской империи (пример 1880 г.)", fontsize=14)
plt.show()
Изучив код, жопити сильно задумался.
Эту уродскую хрень он выдал явно через не хочу. Но уже правильно! Осталась самая малость!
Я взорвался. Всё на сегодня. И подумал, есть же мелкософтовский ИИ. Уж он то не дурак.
Нет! оказалось что это заговор!










ChatGPT
1.4K пост3.6K подписчиков