The answer is B: purple hexagon.

The rule
The pattern repeats every 4 things: purple triangle, purple hexagon, purple circle, purple hexagon. Then it starts again from the beginning.
The pattern as Python code
Here is a tiny Python program that follows the same rule. Type it into IDLE and run it to print the whole pattern, including the answer.
pattern = ["purple triangle", "purple hexagon", "purple circle", "purple hexagon"]
for position in range(10):
print(position + 1, pattern[position % len(pattern)])
When you run it, Python prints:
1 purple triangle 2 purple hexagon 3 purple circle 4 purple hexagon 5 purple triangle 6 purple hexagon 7 purple circle 8 purple hexagon 9 purple triangle 10 purple hexagon
Pixel says: Try changing a number in the code and run it again. Can you make the pattern go on for 20 steps? Meow!