belirsiz boşluğa inanan ateist

entry5 galeri
    1.
  1. varoluşa dair hiçbir şeye değer vermeyen nihilist olduğu halde, varlık mevzubahis olduğunda var olmayan bir şeye inanır, kendi de neye inandığını bilmiyordur. dogmatiktir.

    uzay, belirsiz bir boşluk olmadığı gibi, boş hiç değildir!

    transistörlerin ve transistör tabanlı mantık devrelerinin kusursuz etkileşiminden beslenen çok basit bir program bile bu gerçeği ispatlayabilir.

    1000x1000x1000 piksel boyutlarında bir uzay hayal edin,
    10x10x10 piksel boyutlu,
    26 köşesinde özdeşleriyle kesişen küplerle yaratılsın!

    çıktı:
    https://galeri.uludagsozluk.com/r/2421183/+

    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
    }
    0 ...