:2ạḶgþ`«2ị“* @”Y
Try it online!
How it works
:2ạḶgþ`«2ị“* @”Y Main link. Argument: 2n + 1
:2 Perform integer division by 2, yielding n.
Ḷ Yield [0, ..., 2n].
ạ Take the absolute difference of the result to both sides.
This yields A := [n, ... 0, ... n].
` Call the quicklink to the left with left and right argument A.
þ Table; call the link to the left for all x in A and all y in A.
g Yield the GCD of x and y.
«2 Truncate the GCD at 2, leaving 0 for the origin, 1 for coprime
coordinates, and 2 otherwise.
ị“* @” Index into that string, mapping [1, 2, 0] to ['*', ' ', '@'].
Y Join, separating by linefeeds.