from qiskit import *

# Primeiramente vamos iniciar um circuito 

circuitoQ = QuantumCircuit(1,1)

# No qiskit os qubits são inicializados por default com o estado |0>
# Podemos ver isso plotando a esfera de bloch que representa ele

from qiskit.tools.visualization import plot_bloch_multivector

simulator = Aer.get_backend('statevector_simulator')
result = execute(circuitoQ, backend = simulator).result()

statevector = result.get_statevector()

plot_bloch_multivector(statevector)



# As portas Rx,Ry,Rz servem para fazer rotações nos eixos X,Y,Z 

# Para demonstrar vamos inicializar outro circuito de 1 qubit

circuito2 = QuantumCircuit(1)

# Agora para aplicar a porta usamos .rx(rotacao_em_radianos,qubit_a_passar_pela_porta)

# Nesse exemplo vamos rotacionar o qubit no eixo x em pi/2
# antes é importante importar o pi da biblioteca math

from math import pi

circuito2.rx(pi/2,0)

circuito2.draw(output = 'mpl')

# Vendo o resultado:

from qiskit.tools.visualization import plot_bloch_multivector

simulator = Aer.get_backend('statevector_simulator')
result = execute(circuito2, backend = simulator).result()

statevector = result.get_statevector()

plot_bloch_multivector(statevector)

