My name is Ebu Demirhan, I am 25 years old and I was born and raised in Vienna, Austria. I have a passion for software development, traditional and digital art.
My two older brohters introduced me to gaming pretty early. The older one of them had a PlayStation and the middle one a GameBoy. And if they weren't playing I was allowed to. Later on we got a Computer and me and my middle brother played a MMORPG named Metin2 on it. As the days passed we spend more and more time playing and grinding in Metin2. Video games have had a strong influence on my life: as a child, i spend a lot of my spare time with them and my professional career was also strongly influenced by my love for video games.
Higher Technical Education Institute Ottakring
Computer Science with Focus on Multimedia
2013 - 2018
Techinal University Vienna
BSc in Computer Science
2018 - present
Rubicon
Software Developer
2022 - present
using System;
namespace ProjectileMotionWithAirResistance
{
class Program
{
static void Main(string[] args)
{
// Constants
const double Gravity = 9.81; // m/s^2
const double Mass = 1.0; // kg
const double DragCoefficient = 0.1; // kg/m
// Initial conditions
double initialVelocity = 50; // m/s
double launchAngle = 45; // degrees
double timeStep = 0.01; // seconds
double totalTime = 10; // seconds
// Convert launch angle to radians
double launchAngleRadians = launchAngle * Math.PI / 180;
// Initial velocity components
double initialVelocityX = initialVelocity * Math.Cos(launchAngleRadians);
double initialVelocityY = initialVelocity * Math.Sin(launchAngleRadians);
// Initial position
double x = 0;
double y = 0;
// Initial acceleration
double accelerationX = -DragCoefficient * initialVelocityX * initialVelocityX / Mass;
double accelerationY = -Gravity - DragCoefficient * initialVelocityY * initialVelocityY / Mass;
// Simulation loop
double currentTime = 0;
while (currentTime <= totalTime)
{
// Update velocity using acceleration
double velocityX = initialVelocityX + accelerationX * timeStep;
double velocityY = initialVelocityY + accelerationY * timeStep;
// Update position using velocity
x += velocityX * timeStep;
y += velocityY * timeStep;
// Update acceleration based on velocity
double speedSquared = velocityX * velocityX + velocityY * velocityY;
double dragX = -DragCoefficient * speedSquared * velocityX / Mass;
double dragY = -DragCoefficient * speedSquared * velocityY / Mass;
double accelerationDueToGravity = -Gravity;
// Update acceleration components
accelerationX = dragX;
accelerationY = accelerationDueToGravity + dragY;
// Output current position
Console.WriteLine($"Time: {currentTime:F2}s, Position: ({x:F2}m, {y:F2}m)");
// Increment time
currentTime += timeStep;
}
}
}
}