Как нарисовать круглую форму в PyBox2D

У меня есть код, который рисует фигуру, состоящую из нескольких многоугольников, используя pyBox2D и PyGame. Я определил тела и суставы, он работает хорошо, он делает то, что должен делать, но возникает проблема, когда я хочу изменить форму головы с многоугольника на форму круга, но я не могу ее нарисовать, потому что я использую для рисования вершин, а форма круга имеет нет вершин.

Проблема возникает в этой части кода (окончательный рисунок):

for body in world.bodies: #(ground_body, dynamic_body):  # or: world.bodies
    # The body gives us the position and angle of its shapes
    for fixture in body.fixtures:

        shape = fixture.shape


        vertices = [(body.transform * v) * PPM for v in shape.vertices]

        vertices = [(v[0], SCREEN_HEIGHT - v[1]) for v in vertices]

        pygame.draw.polygon(screen, colors[body.type], vertices)

Как я уже говорил выше, проблема в том, что box2D. b2circleShape не имеет вершин. Как я могу нарисовать круг или рекламные вершины этой формы? Спасибо большое

Обновлено: «дубликат» не отвечает на мой вопрос, не могли бы вы показать мне, как определить круглое тело, я пробовал это

import Box2D  # The main library
# Box2D.b2 maps Box2D.b2Vec2 to vec2 (and so on)
from Box2D.b2 import (world, polygonShape, staticBody, dynamicBody, circleShape)
from Box2D import (b2FixtureDef, b2PolygonShape, b2CircleShape)

chest_body = world.CreateDynamicBody( 
        position=(10, 6.5), 
        fixtures=b2FixtureDef(
                shape=b2PolygonShape(box=(0.5, 1.5)), density=120), 
        angle=0) # This is a rectangular body which is defined correctly

circle = world.CreateDynamicBody(
    position=(10, 6.5), 
    fixtures=b2FixtureDef(
            shape=b2CircleShape(0.5), 
    angle=0)) # I tried this after checking your manual, this does not work

Проблема может быть вызвана (и, вероятно, вызвана) тем, что я не знаю, как запустить IntelliSense для pyBox2D и есть ли вообще IntelliSense. Это означает, что я не знаю, какие параметры нужны Любая помощь приветствуется

stackoverflow.com/questions/10264012/…
Prof. Falken 28.05.2019 10:47

Возможный дубликат Как создать «круги» в Box2D?

funie200 28.05.2019 10:54

Как правило, вы должны сделать это без IntelliSense при использовании Python. github.com/pavitrakumar78/Python-Genetic-Cars-Box2D/blob/mas‌​ter/…

Prof. Falken 29.05.2019 10:22
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
802
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Также есть руководство по python. Проверить это

circle = b2CircleShape(pos=(1, 2), radius=0.5)

Другие вопросы по теме