Точки квадратичної кривої Безьє
Обчисліть точку квадратичної кривої Безьє за трьома двовимірними керувальними точками з модулем до 1e100.
from math import isfinite
def quadratic_bezier(points, t):
def valid(v):
return type(v) in (int, float) and -1e100 <= v <= 1e100 and isfinite(v)
if type(points) not in (list, tuple) or len(points) != 3:
raise ValueError("three control points")
if any(type(p) not in (list, tuple) or len(p) != 2 or not all(map(valid,p)) for p in points):
raise ValueError("bounded finite 2D controls")
if not valid(t) or not 0 <= t <= 1: raise ValueError("parameter 0 through 1")
def mix(a,b): return tuple((1-t)*x+t*y for x,y in zip(a,b))
return mix(mix(points[0],points[1]),mix(points[1],points[2]))- Проєкт
- Перевірте кінці й середину, відхиляючи нескінченні координати або параметр поза нулем та одиницею без зміни точок.
- Перевірте перед застосуванням
- Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
- Моделі
- Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
from math import isfinite
def quadratic_bezier(points, t):
def valid(v):
return type(v) in (int, float) and -1e100 <= v <= 1e100 and isfinite(v)
if type(points) not in (list, tuple) or len(points) != 3:
raise ValueError("three control points")
if any(type(p) not in (list, tuple) or len(p) != 2 or not all(map(valid,p)) for p in points):
raise ValueError("bounded finite 2D controls")
if not valid(t) or not 0 <= t <= 1: raise ValueError("parameter 0 through 1")
def mix(a,b): return tuple((1-t)*x+t*y for x,y in zip(a,b))
return mix(mix(points[0],points[1]),mix(points[1],points[2]))Додайте візуальні очікування до перевірки коду
Крива, що виглядає неправильно, може відображати домовленість щодо даних, а не помилкову формулу. CurveHearth — робоче середовище програмування з ШІ у Windows, що допомагає пов’язати цей видимий результат із реалізацією проєкту. Почніть з очікуваної форми, контрольних даних і компонента, який їх використовує, а потім попросіть підключену модель дослідити шлях між ними.
Одне з можливих завдань — перевірка допоміжної функції квадратичної кривої для попереднього перегляду в редакторі. Попросіть асистента дослідити порядок контрольних точок, межі параметра та спосіб передавання координат кодом виклику. Просіть цільовий патч лише після з’ясування цих припущень. Попередній перегляд — приклад завдання застосунку; корисний результат — код, який ви розумієте й можете перевірити у власному проєкті.
Перевірте пропозицію точними тестовими прикладами кінцевих точок і проміжного значення, а потім огляньте відображений результат у системі координат застосунку. Додайте некоректні та нескінченні значення й NaN, якщо функція обіцяє їх відхиляти. Запустіть відповідні тести проєкту й шукайте незапитані зміни допустимих діапазонів, адже візуальне поліпшення може приховувати ширшу зміну контракту.
CurveHearth підключається до підтримуваних сумісних з OpenAI або Anthropic кінцевих точок. Виберіть модель ШІ без цензури, якщо ваш сервіс її надає; її інструменти, контекст і обмеження залежать від налаштування. Обговорення допомагає вашій перевірці, а тестові приклади та перевірки інтерфейсу визначають, чи відповідає правка вимозі.
Питання щодо зміни інтерполяції
Який контекст допоможе пояснити спотворену криву?
Надайте контрольні точки в їхньому фактичному порядку, значення параметра та координатну домовленість коду виклику. Додайте очікуваний візуальний результат. Ці деталі допоможуть відокремити помилку інтерполяції від припущень про перетворення чи відображення в іншій частині застосунку.
Чи достатньо перевірок кінцевих точок?
Вони корисні, але неповні. Реалізація може правильно повертати обидві кінцеві точки й водночас давати хибні проміжні значення. Додайте щонайменше один незалежно обчислений внутрішній приклад і перевірте візуальну траєкторію в застосунку, що її використовує.
Чи має функція приймати значення поза поточним інтервалом?
Перед розширенням діапазону вирішіть, чи входить екстраполяція до контракту. Запитайте, якому коду виклику вона потрібна і як зараз обробляються некоректні входи. Зробіть розширення діапазону явним, а не приховуйте його у виправленні інтерполяції.
Чи може CurveHearth підтвердити вигляд без запуску мого редактора?
Не припускайте, що огляд коду доводить правильність відображення. Використайте редактор або застосунок для перевірки фактичних координатних перетворень і відображення. Окремо перевірте запропоноване обчислення, а потім переконайтеся, що його інтеграція дає задуману форму.
CurveHearth · Оновлено 2026-10-25