bugün

sonsuzluk

Hani nerde belirsiz boşluk? kullandığınız kelimenin matematikte, mantıkta ve maddi dünyada hiçbir karşılığı yok oğlum!

görsel

belirsiz boşluk olarak görülen uzayın hiç de belirsiz ve boş olmadığını ispatlayan kaynak kodu:
#include <SFML/Graphics.hpp>
#include <vector>

// Ekran boyutlarını tanımlayan sabitler
const int PENCERE_GENISLIGI = 1000; // Pencerenin genişliği (piksel)
const int PENCERE_YUKSEKLIGI = 1000; // Pencerenin yüksekliği (piksel)

// Küp ve uzay parametreleri
const float KUP_BOYUTU = 100.0f; // Her küpün kenar uzunluğu (1000 / 10 = 100 piksel)
const int IZGARA_BOYUTU = 10; // 10x10x10 küp ızgarası

// 3D noktaları temsil eden yapı
struct Nokta3B {
float x, y, z; // 3D uzayda x, y, z koordinatları
};

// 3D noktayı 2D noktaya dönüştüren fonksiyon (izometrik projeksiyon)
sf::Vector2f izdusu_hesapla(const Nokta3B& nokta) {
// izometrik projeksiyon: 3D koordinatları 2D ekrana yansıtır
float izoX = (nokta.x - nokta.y) * 0.707f; // 45 derece dönüşüm için cos(45°)
float izoY = ((nokta.x + nokta.y) * 0.3535f) - (nokta.z * 0.5f); // z eksenini yukarı taşıma
// Ekranın ortasına hizala
izoX += PENCERE_GENISLIGI / 2.0f;
izoY += PENCERE_YUKSEKLIGI / 2.0f;
return sf::Vector2f(izoX, izoY);
}

// Küpün köşe noktalarını tanımlayan fonksiyon
std::vector<Nokta3B> kup_koseleri_al(float x, float y, float z, float boyut) {
// Küpün 8 köşesinin 3D koordinatlarını döndürür
return {
{x, y, z},
{x + boyut, y, z},
{x + boyut, y + boyut, z},
{x, y + boyut, z},
{x, y, z + boyut},
{x + boyut, y, z + boyut},
{x + boyut, y + boyut, z + boyut},
{x, y + boyut, z + boyut}
};
}

// Küpün kenarlarını çizen fonksiyon
void kup_kenarlari_ekle(sf::VertexArray& cizgiler, const std::vector<Nokta3B>& koseler) {
// Alt yüzey çizgilerini ekler (köşeler 0-1-2-3)
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));

// Üst yüzey çizgilerini ekler (köşeler 4-5-6-7)
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));

// Dikey kenarları ekler (0-4, 1-5, 2-6, 3-7)
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[0]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[4]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[1]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[5]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[2]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[6]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[3]), sf::Color::White));
cizgiler.append(sf::Vertex(izdusu_hesapla(koseler[7]), sf::Color::White));
}

// Ana program fonksiyonu
int main() {
// Grafik penceresini oluşturur
sf::RenderWindow pencere(sf::VideoMode(PENCERE_GENISLIGI, PENCERE_YUKSEKLIGI), "3B Kup Izgarasi");
pencere.setFramerateLimit(60); // Çizim hızını saniyede 60 kare ile sınırlar

// Çizgileri saklamak için vertex dizisi
sf::VertexArray cizgiler(sf::Lines, 0);

// 10x10x10 küp ızgarasını oluştur
for (int x = 0; x < IZGARA_BOYUTU; ++x) {
for (int y = 0; y < IZGARA_BOYUTU; ++y) {
for (int z = 0; z < IZGARA_BOYUTU; ++z) {
// Küpün başlangıç koordinatlarını hesaplar
float konumX = x * KUP_BOYUTU;
float konumY = y * KUP_BOYUTU;
float konumZ = z * KUP_BOYUTU;
// Küpün köşe noktalarını alır
auto koseler = kup_koseleri_al(konumX, konumY, konumZ, KUP_BOYUTU);
// Küpün kenarlarını çizer
kup_kenarlari_ekle(cizgiler, koseler);
}
}
}

// Pencere açık olduğu sürece çalışır
while (pencere.isOpen()) {
sf::Event olay;
// Olayları işler (örneğin, pencereyi kapatma)
while (pencere.pollEvent(olay)) {
if (olay.type == sf::Event::Closed)
pencere.close();
}

// Pencereyi siyah renkle temizler
pencere.clear(sf::Color::Black);

// Tüm küp kenarlarını çizer
pencere.draw(cizgiler);

// Pencereyi ekranda günceller
pencere.display();
}

return 0; // Programın başarılı şekilde sonlandığını belirtir
}

derleme ve çalıştırma komutları:
g++ kup_izgarasi.cpp -o kup_izgarasi -lsfml-graphics -lsfml-window -lsfml-system
© copyright 2005 - 2026