bugün
- ingiliz şapkası takmıyor diye türkleri asmak5
- arap gibi giyinerek sevap kazandığını sanan tip9
- falıma bakmak isteyen var mı24
- kuzenin içine boşalmak9
- namaz takkesi3
- yengeyi götürmek3
- kemal kılıçdaroğlu17
- yılmaz güney5
- velvet5
- rahmi koç3
- birader yazar olmak4
- birdenbire gelen fake hesap açma isteği3
- sade soda erkeği vs meyveli soda erkeği7
- çorapla uyuyan insanların sosyopat olması7
- meslek lisesi vs imam hatip lisesi6
- hapşırırken aynı anda osurmak7
- bir scottish fold sahibi olmadan ölüp gitmek8
- eril erkek meslekleri6
- soğuk bulgur pilavı yerken ağlayarak 31 çekmek6
- erkekler neden az yaşar4
- aylık 309 bin lira iyi para mıdır sorunsalı2
- 2026 dünya kupası19
- sırrı süreyya önder2
- gulmekicinyaratilmis4
- futbol12
- utku gümrükçü6
- ioçk kızmış beyler4
- fal baktırmaya ve stalk yapmaya ara vermek2
- sevan nişanyan2
- evde mum bulundurmak5
- chp'li 17 belediye başkanının akp'ye geçmesi9
- metrobüs kliması4
- özel okul öğretmenleri açlık grevinde11
- göğüs dekoltesi olan erkek7
- aylık 307 bin lira iyi para mıdır sorunsalı5
- sıkıldım ulan sıkıldım anlıyor musun sıkıldım5
- yaz aşkı bulamamak7
- erkek erkeğe açık oylaşmak11
- aldım kabul ettim9
- ayrılığın 7 aşaması6
- bir çift bacak arasında boğulmak4
- vurdurmak özgürlüktür2
- sokak köpekleri sorununun çözümü5
- kadınları cinsel obje olarak gören erkek2
- sabah kahvesi eşliğinde sohbet etmek4
- demokratik kongo cumhuriyeti2
- king is back2
- siz hepiniz eşref tek2
- kolombiya2
- 1 yıldan fazladır sakız çüğnememek2
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ı:
görsel
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
}
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ı:
görsel
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
}
Gündemdeki Haberler
Güncel Önemli Başlıklar