Имба от китайцев

вышел новый БЕСПЛАТНЫЙ чат-бот сразу с 8 моделями на выбор — для работы есть все нужные фичи, как у ChatGPT
Вот некоторые из них:
• Qwen2.5-Plus — основная модель для работы
• Qwen2.5-Turbo — модель с поддержкой контекста до 1 миллиона токенов для генерации огромных файлов по типу курсовых или даже книг
• Работа с документами — перевод, извлечение данн…

11

Запрос:


Напишите скрипт на Python для Blender, который выполняет следующие действия:

Выбор кривой : Берет текущую выбранную Bezier кривую в сцене Blender.
Вычисление точек на кривой : Проходит по кривой и создает виртуальные точки через заданный промежуток (продольное разрешение), чтобы получить более детализированное представление пути.
Построение поверхности дороги : Использует вычисленные точки для создания непрерывной поверхности дороги:
Ширина дороги должна быть задаваемой параметром.
Поверхность дороги должна быть построена без учета углов наклона (без banking).
Создание меша : Создает новый объект меша в Blender, представляющий собой поверхность дороги.
Параметры скрипта:

width: Ширина дороги (по умолчанию 4.0 единицы).
resolution: Количество точек вдоль пути (продольное разрешение) (по умолчанию 20).
Пример использования:

Открыть Blender и перейти в режим "Scripting".
Вставить скрипт в текстовый редактор.
Создать или выбрать Bezier кривую в сцене.
Запустить скрипт, нажав кнопку "Run Script".
Ожидаемый результат:

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

3 вариант:
Вот пример скрипта на Python для Blender, который выполняет указанные вами действия. Этот скрипт создает поверхность дороги на основе выбранной Bezier кривой с заданной шириной и разрешением.

```python
import bpy
import bmesh
from mathutils import Vector

def create_road_mesh(curve_obj, width=4.0, resolution=20):
# Получаем данные кривой
curve_data = curve_obj.data

# Создаем новый меш для дороги
mesh = bpy.data.meshes.new(name="RoadMesh")
road_obj = bpy.data.objects.new(name="Road", object_data=mesh)

# Добавляем объект в сцену
bpy.context.collection.objects.link(road_obj)

# Создаем список точек на кривой
points = []
for spline in curve_data.splines:
for point in spline.bezier_points:
points.append(curve_obj.matrix_world @ point.co)

# Разбиваем кривую на промежутки
segments = [(points[i], points[i+1]) for i in range(len(points) - 1)]

vertices = []
faces = []

for i in range(len(segments)):
start_point = segments[i][0]
end_point = segments[i][1]

# Вычисляем направляющий вектор
direction = (end_point - start_point).normalized()
normal = Vector((-direction.y, direction.x, 0))

# Создаем точки для ширины дороги
left_start = start_point + normal * width / 2
right_start = start_point - normal * width / 2
left_end = end_point + normal * width / 2
right_end = end_point - normal * width / 2

# Добавляем вершины
vertices.extend([left_start, right_start, left_end, right_end])

if i > 0:
last_face_index = len(vertices) - 5
faces.append((last_face_index, last_face_index + 1, last_face_index + 3, last_face_index + 2))

# Создаем последнюю грань
faces.append((len(vertices) - 4, len(vertices) - 3, len(vertices) - 1, len(vertices) - 2))

# Создаем меш из вершин и граней
mesh.from_pydata(vertices, [], faces)
mesh.update()

def main(width=4.0, resolution=20):
# Проверяем, что выбрана одна кривая
selected_objects = [obj for obj in bpy.context.selected_objects if obj.type == 'CURVE']
if len(selected_objects) != 1:
print("Выберите одну Bezier кривую.")
return

curve_obj = selected_objects[0]
create_road_mesh(curve_obj, width, resolution)

# Запускаем функцию main с параметрами по умолчанию
main()
```

### Как использовать этот скрипт:

1. Откройте Blender и перейдите в режим "Scripting".
2. Вставьте этот скрипт в текстовый редактор.
3. Создайте или выберите Bezier кривую в сцене.
4. Запустите скрипт, нажав кнопку "Run Script".

### Ожидаемый результат:

Скрипт создаст новую поверхность дороги, которая следует за формой выбранной Bezier кривой, с заданной шириной и детализацией.

- **Ширина дороги** задается параметром `width` (по умолчанию 4.0 единицы).
- **Количество точек вдоль пути** задается параметром `resolution` (по умолчанию 20).

Этот скрипт не учитывает углы наклона (banking) и создает плоскую поверхность дороги.

Ну то что на скриншоте - его код который получился. Неплохо. Но надо уточнять. С другими нейросетями приходится долго возиться.

2

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

Для выполнения вашего запроса, ниже представлен скрипт на Python для Blender, который создает поверхность дороги, следующую за выбранной Bezier кривой. Этот скрипт позволяет задать ширину дороги и количество точек для продольного разрешения.

```python
import bpy
import math

def create_road_surface(curve, width=4.0, resolution=20):
# Убедимся, что выбрана Bezier кривая
if curve.type != 'CURVE':
print("Выберите Bezier кривую")
return

# Получаем точки кривой
spline = curve.data.splines[0]
points = spline.bezier_points

# Создаем список для хранения точек дороги
road_points = []

# Вычисляем точки на кривой
for i in range(resolution + 1):
t = i / resolution
point = curve.matrix_world @ points[t].co
tangent = points[t].handle_right - points[t].handle_left
normal = tangent.cross(points[t].co).normalized()

# Добавляем точки для левой и правой стороны дороги
left_point = point + normal * (width / 2)
right_point = point - normal * (width / 2)

road_points.append(left_point)
road_points.append(right_point)

# Создаем меш для поверхности дороги
mesh = bpy.data.meshes.new("RoadMesh")
obj = bpy.data.objects.new("Road", mesh)
bpy.context.collection.objects.link(obj)

# Создаем вершины и грани для меша
vertices = []
edges = []
faces = []

for i in range(len(road_points)):
vertices.append((road_points[i][0], road_points[i][1], road_points[i][2]))

# Создаем прямоугольники между точками
for i in range(0, len(vertices) - 2, 2):
faces.append((i, i+1, i+3, i+2))

# Создаем меш
mesh.from_pydata(vertices, edges, faces)
mesh.update()

# Очистка всех объектов
bpy.ops.object.select_all(action='DESELECT')

# Получаем текущую выбранную Bezier кривую
selected_objects = bpy.context.selected_objects
if len(selected_objects) == 0 or selected_objects[0].type != 'CURVE':
print("Выберите Bezier кривую")
else:
curve = selected_objects[0]
create_road_surface(curve, width=4.0, resolution=20)
```

### Как использовать скрипт:

1. Откройте Blender и перейдите в режим "Scripting".
2. Вставьте вышеуказанный скрипт в текстовый редактор Blender.
3. Создайте или выберите Bezier кривую в сцене.
4. Нажмите кнопку "Run Script" для выполнения скрипта.

### Ожидаемый результат:
Скрипт создаст новую поверхность дороги, которая следует за формой выбранной Bezier кривой, с заданной шириной и детализацией. Поверхность дороги будет состоять из прямоугольников, соединенных между собой.

Если вам нужно изменить параметры ширины или количества точек, просто отредактируйте соответствующие значения при вызове функции `create_road_surface`.

2 вариант:
Конечно! Вот пример скрипта на Python для Blender, который выполняет описанные вами действия:

```python
import bpy
import bmesh

def create_road_curve(curve_obj, width=4.0, resolution=20):
# Убедитесь, что выбрана Bezier кривая
if curve_obj.type != 'CURVE':
print("Выберите Bezier кривую.")
return None

# Получаем данные кривой
spline = curve_obj.data.splines[0]

# Создаем новые точки на кривой
points = []
for i in range(resolution + 1):
t = i / resolution
point = spline.evaluate(t)
points.append(point)

# Создаем новый меш и добавляем его в сцену
mesh = bpy.data.meshes.new("RoadMesh")
obj = bpy.data.objects.new("Road", mesh)
bpy.context.collection.objects.link(obj)

# Создаем бмеш для редактирования меша
bm = bmesh.new()

# Добавляем вершины и ребра для создания поверхности дороги
for i in range(len(points)):
x, y, z = points[i]
bm.verts.new((x, y, z))

# Создаем грань для каждой пары точек
for i in range(len(points) - 1):
v1 = bm.verts[i]
v2 = bm.verts[i + 1]
edge = bm.edges.new([v1, v2])

# Добавляем ширину дороги
for i in range(len(points) - 1):
v1 = bm.verts[i]
v2 = bm.verts[i + 1]

# Создаем дополнительные вершины для ширины
v1_left = bm.verts.new((v1.co.x - width / 2, v1.co.y, v1.co.z))
v1_right = bm.verts.new((v1.co.x + width / 2, v1.co.y, v1.co.z))
v2_left = bm.verts.new((v2.co.x - width / 2, v2.co.y, v2.co.z))
v2_right = bm.verts.new((v2.co.x + width / 2, v2.co.y, v2.co.z))

# Создаем грани
bm.faces.new([v1, v1_left, v2_left, v2])
bm.faces.new([v1, v1_right, v2_right, v2])
bm.faces.new([v1_left, v1_right, v2_right, v2_left])

# Обновляем меш
bm.to_mesh(mesh)
bm.free()

return obj

# Параметры скрипта
width = 4.0
resolution = 20

# Выбираем текущую Bezier кривую
selected_objects = bpy.context.selected_objects
if len(selected_objects) == 1 and selected_objects[0].type == 'CURVE':
curve_obj = selected_objects[0]
else:
print("Выберите одну Bezier кривую.")
exit()

# Создаем поверхность дороги
road_obj = create_road_curve(curve_obj, width, resolution)

if road_obj:
print("Поверхность дороги создана успешно.")
```

### Как использовать скрипт:

1. Откройте Blender.
2. Перейдите в режим "Scripting".
3. Вставьте приведенный выше скрипт в текстовый редактор.
4. Создайте или выберите Bezier кривую в сцене.
5. Запустите скрипт, нажав кнопку "Run Script".

### Ожидаемый результат:
Скрипт создаст новую поверхность дороги, которая следует за формой выбранной Bezier кривой, с заданной шириной и детализацией.

Если у вас возникнут вопросы или потребуется дополнительная помощь, не стесняйтесь спрашивать!

OpenAI выпустила «рассуждающую» модель o3-mini

В том числе для пользователей ChatGPT без подписки.

OpenAI выпустила «рассуждающую» модель o3-mini
119119
6868
4949
33
22
22
11
Спасибо DeepSeek, а то б бесплатно не выпустили
реклама
разместить
На сцену выходит новый игрок Новая нейросеть Alibaba обошла GPT-4 в бенчмарке
На сцену выходит новый игрок Новая нейросеть Alibaba обошла GPT-4 в бенчмарке

Компания Alibaba выпустила сразу две новые ИИ-модели с открытыми исходниками: Qwen2.5-VL и Qwen2.5-14B-Instruct-1M. Они позиционируются как универсальные решения для работы с текстом, изображениями и видео, при этом одна из нейросетей способна «переварить» текстовый запрос огромного объёма.

11
285 нейросетей, которые взорвут твою продуктивность. Это вернет тебе до 75% рабочего времени! — эпичная подборка
285 нейросетей, которые взорвут твою продуктивность. Это вернет тебе до 75% рабочего времени! — эпичная подборка
681681
214214
2323
1616
1212
77
66
22
а на заводе какую нейросеть применить?
OpenAI внедряет улучшенную память для ChatGPT, позволяя ему ссылаться на предыдущие чаты
OpenAI внедряет улучшенную память для ChatGPT, позволяя ему ссылаться на предыдущие чаты
55
Gopnik GPT или как мы испортили ИИ

Экспериментальный ИИ с душой гопоты и внутренним вайбом питерских дворов или что будет, если добавить в ChatGPT помимо мозгов еще и харизму.

Gopnik GPT или как мы испортили ИИ
1212
77
55
33
Кто-нибудь тыкался уже в Qwen? Насколько и в чем оно получше/похуже Chat GPT?
Кто-нибудь тыкался уже в Qwen? Насколько и в чем оно получше/похуже Chat GPT?
22
Мои поиски умной локальной языковой модели
Мои поиски умной локальной языковой модели
1515
22
[]