# Uiua, <s>46</s> <s>44</s> <s>42</s> <s>40</s> <s>39</s> 38 bytes

<sup>[crossed out 44 is still regular 44 :(](https://codegolf.stackexchange.com/a/256052/108687)</sup>

    ⊏↧5/◇+×+1⇡4{⇌.⊞=.⊙⟜¤⟜=}⇡+1×2.:$  /\-|O

[Try it!](https://uiua.org/pad?src=0_10_2__RiDihpAg4oqP4oanNS_il4crw5crMeKHoTR74oeMLuKKnj0u4oqZ4p-cwqTin5w9feKHoSsxw5cyLjokICAvXC18TwoK4omhKCZwIiLiiKniiaEmcEYuKeKHoTUK) I submitted this on the day of the 2024 solar eclipse, which is fitting for a challenge about the sun. (Edit - the eclipse was beautiful! I saw it at around 85%-90% coverage)

At one point this borrowed some logic from [randomra’s very clever J solution](https://codegolf.stackexchange.com/a/49785/108687), but I found a shorter solution using a different method.

Outdated explanation:

Consider the input 3. We double this and add 1 to get the side length 7.

From this we start with the identity matrix, and a reversed copy:

    0 0 0 0 0 0 1    1 0 0 0 0 0 0
    0 0 0 0 0 1 0    0 1 0 0 0 0 0
    0 0 0 0 1 0 0    0 0 1 0 0 0 0
    0 0 0 1 0 0 0    0 0 0 1 0 0 0
    0 0 1 0 0 0 0    0 0 0 0 1 0 0
    0 1 0 0 0 0 0    0 0 0 0 0 1 0
    1 0 0 0 0 0 0    0 0 0 0 0 0 1

Also make the array of this many zeros with a 1 at the position of the original input:

    0 0 0 1 0 0 0

Create a square matrix of this, and a transposed copy:

    0 0 0 0 0 0 0    0 0 0 1 0 0 0
    0 0 0 0 0 0 0    0 0 0 1 0 0 0
    0 0 0 0 0 0 0    0 0 0 1 0 0 0
    1 1 1 1 1 1 1    0 0 0 1 0 0 0
    0 0 0 0 0 0 0    0 0 0 1 0 0 0
    0 0 0 0 0 0 0    0 0 0 1 0 0 0
    0 0 0 0 0 0 0    0 0 0 1 0 0 0

Then we take these 4 matrices in an array and multiply them by 1, 2, 3, and 4 respectively:



    0 0 0 1 0 0 0   0 0 0 0 0 0 0
    0 0 0 1 0 0 0   0 0 0 0 0 0 0
    0 0 0 1 0 0 0   0 0 0 0 0 0 0
    0 0 0 1 0 0 0   2 2 2 2 2 2 2
    0 0 0 1 0 0 0   0 0 0 0 0 0 0
    0 0 0 1 0 0 0   0 0 0 0 0 0 0
    0 0 0 1 0 0 0   0 0 0 0 0 0 0

    3 0 0 0 0 0 0   0 0 0 0 0 0 4
    0 3 0 0 0 0 0   0 0 0 0 0 4 0
    0 0 3 0 0 0 0   0 0 0 0 4 0 0
    0 0 0 3 0 0 0   0 0 0 4 0 0 0
    0 0 0 0 3 0 0   0 0 4 0 0 0 0
    0 0 0 0 0 3 0   0 4 0 0 0 0 0
    0 0 0 0 0 0 3   4 0 0 0 0 0 0

Sum them all together:

    3 0 0  1 0 0 4  
    0 3 0  1 0 4 0  
    0 0 3  1 4 0 0  
    2 2 2 10 2 2 2 
    0 0 4  1 3 0 0  
    0 4 0  1 0 3 0
    4 0 0  1 0 0 3

We’re going to index these numbers into a string to get each character, and that 10 is going to get in the way, so take the minimum of the results and 5:

    3 0 0 1 0 0 4  
    0 3 0 1 0 4 0  
    0 0 3 1 4 0 0  
    2 2 2 5 2 2 2 
    0 0 4 1 3 0 0  
    0 4 0 1 0 3 0
    4 0 0 1 0 0 3

Finally index these into a string so that 0 becomes a space, 1 becomes `|`, 2 becomes `-`, 3 becomes `\`, 4 becomes `/`, and 5 becomes `O`:

    \  |  /
     \ | / 
      \|/  
    ---O---
      /|\  
     / | \ 
    /  |  \