Personal content

Real name
Nicolaus Copernicus
Place of birth
Sol
Year of birth
3254
Age
55
Height
180 cm / 5' 11"
Weight
90 kg / 198 lb
Gender
Male
Build type
Athletisch
Skin color
Hauttyp II
Hair color
Grau
Eye color
Blaugrau
Accent
Universal
I was born in 3252 in the Sol system as the third son of a merchant who traded with the surrounding systems. Our family was quite successful in trade, so I was able to enjoy a very good education, graduating with full academic honours. My two elder brothers took over the business and developed it further in the field of industrial manufacturing of semiconductor products for robotics. Thus, through innovation, our small business became an integral part of Achilles Corporation's PA912 robotic AI.

After expanding my assets, I decided to pursue my passion for adventure and discovery. I invested a significant portion of my wealth in acquiring my own spaceship, which I equipped with state-of-the-art technology and weaponry. With my experience in commerce and keen mind for profitable business, I was able to assemble a team of capable crew members to assist me in my travels across the galaxy.

Over the years, I discovered more unknown worlds, explored mysterious anomalies and traded in exotic goods found during my travels. My adventures brought me not only wealth, but also knowledge of alien cultures and technologies, which I shared with my crew and other explorers.

Because of my successes and commitment to interstellar trade, I was eventually appointed to the Council of the Trade Association. In this position, I advocated for fair trade, the protection of trade routes and the strengthening of the economy between different interstellar communities. I successfully negotiated treaties and agreements that not only benefited my own company, but also helped to promote stability and prosperity in the galaxy. Despite my success and influence, I never forgot my roots and my family. I continued to support my company and help my brothers drive new innovations in the robotics industry. Together, we contributed to the development of more powerful AI systems that improved the lives of people across the galaxy.

I was appointed as a diplomat between the Federation and the Empire of Achenar, a galactic superpower and hereditary monarchy. The task of building bridges between these two ancient enemies was a challenge I took on with dedication. As a diplomat, it was my responsibility to represent the interests of both parties and to seek solutions that would lead to peaceful coexistence and economic cooperation. The differences in political systems, values and views on technology and work were often obstacles that had to be overcome.



The Empire held on to its traditional values, including the client system and the use of slave labour instead of robotics. The Federation, on the other hand, was more technologically advanced, relying on robotics and artificial intelligence. These fundamental differences created tension and mistrust between the two parties. My job was to promote dialogue and build trust between political leaders on both sides. I organised meetings, negotiations and informal discussions to clear up misunderstandings and identify common interests. It was a lengthy and challenging task, as the Empire and the Federation harboured deep-rooted prejudices and hostilities. Nevertheless, I managed to make small progress and foster a degree of understanding and respect between the two parties.

Through my work as a diplomat between the Empire and the Federation, I helped to bring about some trade arrangements and agreements. These allowed for a limited exchange of goods and resources between the two factions and laid the groundwork for possible future cooperation.

My diplomatic post was a unique opportunity to immerse myself in the complex political and cultural structures of the Empire. I learned a lot about their society, their sense of honour and the value they place on social class and status. It was an interesting experience to interact with the imperial dignitaries and the imperial family.  My time as a diplomat between the Empire and the Federation was marked by challenges, but also by valuable insights and the opportunity to improve relations between the two powers. Despite the profound differences between them, I was optimistic and committed to finding a way for them to converge peacefully and build a common future.

CMDR
Copernicus






Nice weekend Elite project and learn how to write your own Coriolis Space Station in C#?
Sure! I give you a helping hand...





/* ---------------------------------------------------------------------------------------
  Elite Coriolis Station like the C64 MiniSim for Windows
  compiler: Visual Studio Community - Windows PC
  No rights reserved - free for fun -  2023 Nic

  If you want to have a small Coriolis space station for your Windows, which
  on your Windows PC, this is a nice project for the weekend, which everyone can
  which anyone can easily build themselves.

  All you need is the Visual Studio Community Compiler, which is available
  free of charge from Microsoft. Just download it, maybe watch a
  a little tutorial to understand it and get started.

  With this small code example you can build your own Coriolis space station for your PC.
  By the way, the code is also easy to implement for Linux (see below...)

  Please make sure that System.Draw is referenced in the references section.
  If no links are listed, you can add the links manually.
  Click on the "Browse" tab, navigate to "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5"
  (the path may vary depending on your Visual Studio version) and select "System.Drawing.dll". This is the reference we need for the graphic.

  By the way, don't be surprised if some comments in the source code are German.
  If I'm already writing the source code, then you can also learn some German and C# in the process.
  That way you kill two birds with one stone.
 
  Have fun & a great time... o7, Nic

  ---------------------------------------------------------------------------------------- */


// Include Basic Libs

using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections.Generic;

public class CoriolisRotation : Form
{
    private Timer timer;
    private float rotationAngle;
    private List<Point3D> vertices;
    private List<int[]> faces;

    public CoriolisRotation()
    {
        Text = "An der schönen blauen Donau, Op. 314 "; // Deutsche Kultur - a waltz by the Austrian composer Johann Strauss II, composed in 1866. Originally performed on 15 February 1867

        Size = new Size(1024, 768); // Die Fenstergröße (you guess it)
        DoubleBuffered = true;

        timer = new Timer();
        timer.Interval = 15; // Geschwindigkeit der Rotation der Station ändern
        timer.Tick += new EventHandler(OnTimerTick);
        timer.Start();

        InitializeVertices();
        InitializeFaces();
    }

    private void OnTimerTick(object sender, EventArgs e)
    {
        rotationAngle += 1.0f; // Rotationswinkel
        Invalidate();
    }

  private void InitializeVertices()
{
    vertices = new List<Point3D>();

    // Eckpunkte der Station
    double phi = (1.0 + Math.Sqrt(5.0)) / 2.0;

    vertices.Add(new Point3D(-1, -1, -1));
    vertices.Add(new Point3D(1, -1, -1));
    vertices.Add(new Point3D(1, 1, -1));
    vertices.Add(new Point3D(-1, 1, -1));
    vertices.Add(new Point3D(0, -1 / phi, -phi));
    vertices.Add(new Point3D(0, 1 / phi, -phi));
    vertices.Add(new Point3D(-phi, 0, -1 / phi));
    vertices.Add(new Point3D(-phi, 0, 1 / phi));
    vertices.Add(new Point3D(0, -1 / phi, phi));
    vertices.Add(new Point3D(0, 1 / phi, phi));
    vertices.Add(new Point3D(phi, 0, -1 / phi));
    vertices.Add(new Point3D(phi, 0, 1 / phi));

    // Landeschleuse der Station
    vertices.Add(new Point3D(0.5f, 0.5f, -1.5f)); // Unten
    vertices.Add(new Point3D(0.5f, 0.5f, -0.5f));
    vertices.Add(new Point3D(0.5f, -0.5f, -0.5f));
    vertices.Add(new Point3D(0.5f, -0.5f, -1.5f));

    // Skalieren der Koordinaten für die Anzeige
    for (int i = 0; i < vertices.Count; i++)
    {
        vertices[i].X *= 100;
        vertices[i].Y *= 100;
        vertices[i].Z *= 100;
    }
}

private void InitializeFaces()
{
    faces = new List<int[]>();

    // Flächen der Coriolis
    faces.Add(new int[] { 0, 1, 6, 7, 2 });
    faces.Add(new int[] { 0, 2, 3, 8, 4 });
    faces.Add(new int[] { 0, 4, 5, 10, 1 });
    faces.Add(new int[] { 1, 10, 11, 6 });
    faces.Add(new int[] { 2, 7, 9, 3 });
    faces.Add(new int[] { 3, 9, 8, 4 });
    faces.Add(new int[] { 5, 10, 11, 7 });
    faces.Add(new int[] { 5, 7, 6, 11 });

    // Einflugschleuse der Coriolis Raumstation - Größe kann man anpassen
    faces.Add(new int[] { 12, 13, 14, 15 });
}

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Graphics g = e.Graphics;
        g.Clear(Color.Black);

        Point3D[] rotatedVertices = new Point3D[vertices.Count];

        float sinA = (float)Math.Sin(rotationAngle * Math.PI / 180.0f);
        float cosA = (float)Math.Cos(rotationAngle * Math.PI / 180.0f);

        for (int i = 0; i < vertices.Count; i++)
        {
            float x = vertices[i].X;
            float y = vertices[i].Y;
            rotatedVertices[i].X = x * cosA - y * sinA;
            rotatedVertices[i].Y = x * sinA + y * cosA;
            rotatedVertices[i].Z = vertices[i].Z;
        }

        foreach (int[] face in faces)
        {
            Point[] screenPoints = new Point[face.Length];

            for (int i = 0; i < face.Length; i++)
            {
                float x = rotatedVertices[face[i]].X;
                float y = rotatedVertices[face[i]].Y;
                screenPoints[i] = new Point((int)x + Width / 2, (int)y + Height / 2);
            }

            g.DrawPolygon(Pens.White, screenPoints); // Weiße Linien wie auf dem C64
        }
    }

    public static void Main()
    {
        Application.Run(new CoriolisRotation());
    }
}

class Point3D
{
    public float X, Y, Z;

    public Point3D(float x, float y, float z)
    {
        X = x;
        Y = y;
        Z = z;
    }
}




For Linux users...

__________________
< Ubuntu is great! >
------------------
  \
    \
        .--.
      |o_o |
      |:_/ |
      //  \ \
    (|    | )
    /'\_  _/`\
    \___)=(___/

To run the C# program on Ubuntu Linux, you will need the .NET Core runtime (or .NET 5+), as this is a cross-platform version of .NET. Here are the steps to run the program on Ubuntu Linux:

Install .NET Core or .NET 5+: Open a terminal and run the following commands to install .NET Core or .NET 5+:
Install the .NET SDK (Software Development Kit).

sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk

# Check the installation
dotnet --version




Make sure you have at least .NET Core 3.0 or .NET 5+ installed.

Create a new project: In your terminal, navigate to the directory where you want to create the project and run the following command to create a new console application project:

                codedotnet new console -n EliteC64App




This will create a new .NET project called "EliteC64App".
Open the project: Use your favourite text editor or a development environment like Visual Studio Code to open the project and add the code.
Replace the code:
Open the main C# file in your project directory (usually Program.cs) and replace the existing code with the code shown above for the rotating dodecahedron with the centred rectangle.

Execute the program:
In the terminal, navigate to the project directory (cd EliteC64App) and run the following command to execute the program:

                codedotnet run




The rotating dodecahedron should be displayed in a terminal window.

This is the procedure to run the C# program on Ubuntu Linux. Make sure you have .NET Core or .NET 5+ installed correctly before creating and running the project.

:D Nic