Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

rotação

oi eu presiso de ajuda. eu tentei fazer um circulo que gira em circulos porem ao invez disso a tela não responde. alguem pode me dizer oque ouve eis o codigo

import cv2
import matplotlib.pyplot as plt
import numpy as np

img = cv2.imread("C:\\Users\\zumbi\\OneDrive\\Documentos\\guto_backup\\guto\\desenhos\\Nova3.jpg")

y = 0
xr = int(input())

x = xr
while(True):
    if (x > 0):
        while(x > 0):
             x = x + 1
             y = y - 1
             cv2.circle(img, (x, y), 20, (0, 0, 255), -1)
             cv2.imshow("circulo", img)
    if(x > -xr):
        while(x > -xr):
            x = x - 1
            y = y - 1
            cv2.circle(img, (x, y), 20, (0, 0, 255), -1)
            cv2.imshow("circulo", img)
    if(x < 0):
        while(x < 0):
            x = x + 1
            y = y - 1
            cv2.circle(img, (x, y), 20, (0, 0, 255), -1)
            cv2.imshow("circulo", img)

    if(x > -xr):
        while(x > xr):
            x = x + 1
            y = y + 1
            cv2.circle(img, (x, y), 20, (0, 0, 255), -1)
            cv2.imshow("circulo", img)

    if(cv2.waitKey(10) == 1):
        cv2.destroyAllWindows()

ajuda pf

2 respostas
solução!

Oi Daniel, tudo bom?

Primeiramente, uma boa abordagem pra melhorar a legibilidade do nosso código e por consequencia nossa capacidade de refinar o algoritmo é dar nomes mais concretos pras variaveis.

Por exemplo, a variavel xr poderia se chamar algo como: valorDeXDigitado

aplicando essa alteração no código da pra ter uma noção um pouco menos abstrata do que ta rolando.

Um ponto que eu reparei de estranho é que temos duas condições iguais no código:

if(x > -xr):
        while(x > -xr):
            x = x - 1
            y = y - 1
            cv2.circle(img, (x, y), 20, (0, 0, 255), -1)
            cv2.imshow("circulo", img)
...
    if(x > -xr):
     while(x > xr):
            x = x + 1
            y = y + 1
            cv2.circle(img, (x, y), 20, (0, 0, 255), -1)
            cv2.imshow("circulo", img)

Isso significa que nunca vamos entrar na segunda condição. Porque a primeira sempre vai acontecer antes =)

Essa atividade que você está fazendo está contida no curso? Se sim, compartilha aqui com a gente a atividade assim fica mais fácil entender o contexto como um todo.

Além disso, rola algum erro quando você executa o código?

Compartilha com a gente o stack trace do problema que ta rolando, isso pode dar um norte melhor também =)

Abraço

eu percebi alguns problemas e os resolvi mas ainda n dava certo pois eu acredito que do jeito que eu coloquei só seria visível se eu afastasse a imagens o que eu n sei fazer. mas obrigado pelo comentário realmente tenho que melhorar minha legibilidade :).