So, these are the points that you are using:
- x: rect.height, y: rect.midY
- x: rect.width / 3, y: rect.minY
- x: rect.minX, y: rect.width / 3
- x: rect.height, y: rect.midY
- x: rect.maxX, y: rect.width / 2
Let's assume that your rectangle that you are drawing in has a width and hieght of 10 just for easy math and point plotting.
However, in this graph the (0, 0) point is not at the bottom left corner of the grid like you might be used to from math class. Instead, the (0,0) point is at the top-left corner, and the Y values get larger as they move down the screen. That is just the way that Core Graphics plots things, so it might be sort of upside down from what you are used to.
Then we have these points:
(x: rect.height, y: rect.midY) = (10, 5)
- We are starting on the far right edge of the square, and half way down toward the bottom of the square.
(x: rect.width / 3, y: rect.minY) = (3.33, 0)
- We move to only 1/3 of the way off the left edge at the top of the square.
(x: rect.minX, y: rect.width / 3) = (0, 3.33)
- We move to the left edge of the square, but 1/3 of the way down from the top.
(x: rect.height, y: rect.midY) = (10, 5)
- We move back to where we started
This is shaping up to be more like just a triangle than an arrow. So, think about if you were trying to draw an arrow by plotting points on a graph. But, remember that the Y values on the graph might be inverted from what you are used to.