bugün
- oruç açı anlamak içinse açlar neden oruç tutar11
- yazılımcı erkeklerin yakışıklı olmaması7
- tefsiriyle okusak ülkenin yarısı dinden çıkar11
- kizlarsoruyor com6
- cd devrinin bitmesi16
- akp bitince ne olacak22
- kucak dansı yapmayı bilen kız sayısının azalması6
- macron koşacak diye park kapatan akepe31
- kuranı kerim meali6
- götün sürekli kanaması5
- aleti kestirip geneleve düşmek2
- royall stars4
- avm otoparkında uygunsuz çifte bağıran kadın21
- arkadaşlar yoruldum2
- çocuk istememe nedenleri5
- fusya semsiyeli yabanci17
- aşırı çıplaklığın rahatsız edici olması34
- herzevekil5
- sözlük hatunlarının nefsimi kabartması sorunsalı11
- arkadaşlar lütfen bilgi içerikli entry girelim12
- çirkin adam güzel kadın aşkı4
- erkekten ev işi bekleyen kadın2
- ben buraya yargılanmaya değil yargılamaya geldim3
- öğretmen olmak5
- no 12
- izlanda başbakanı'nın külliye'ye hayran kalması2
- 8 temmuz 2026 ekrem imamoğlu savunması4
- das kapital i yırtan kız2
- krediyle kurban kesen müslüman2
- ulu sözlük team3
- rusya'nın dizel yakıt ihracatını yasaklaması2
- bezelye yemeği9
- sikmek icin entry ni beğendi7
- aşık olunan ünlüler2
- gaddar kerim in mesleği nedir4
- akrabalarla tüm alakayı kesmek5
- güzel zannedilen kadınların sıradan olmaları9
- uzun zamandır yapmadığınız şeyler10
- araba sevdası2
- bedenen yorulmak mı beynen yorulmak mı4
- toyota corolla3
- otel odasında ölü bulunmak12
- alaçatı da hayır lokmasını talan eden teyzeler8
- ölümün en iyi tanımı17
- ekşi sözlükteki başlıkları uludağ sözlükte görmek7
- ilahi bir gücün sizi frenlediği düşüncesi7
- borç olmadan kira olmadan iyi olan para2
- kol saati takmanın anlamsızlığı15
- inte suri hur2
- ciguli kral20
zemin için çarpışan objelere farklı sürtünme katsayıları verdim, çünkü birinin malzemesi plastik, diğeri metal olabilir, bu da sürtünme değerlerini etkileyecektir.
(video artık mevcut değil)
dikdörtgenlere farklı ağırlıklar atadım ve zeminle etkileşmelerini sağladım.
ortaya çıkan tablo hayli ilginç oldu.
#include <SFML/Graphics.hpp> // SFML grafik kütüphanesini dahil et
#include <cmath> // Matematik fonksiyonları için gerekli kütüphane
#include <sstream> // String akışları için gerekli kütüphane
// Sabitler
const float GRAVITY = 981.0f; // Yerçekimi ivmesi (N)
const float FLOOR_Y = 540.0f; // Zemin seviyesi (Y-koordinatı)
const float WINDOW_WIDTH = 1920.0f; // Pencere genişliği
const float WINDOW_HEIGHT = 1080.0f; // Pencere yüksekliği
// Ağırlıklar (kg)
const float RECTANGLE1_WEIGHT = 3000.0f; // ilk dikdörtgenin ağırlığı
const float RECTANGLE2_WEIGHT = 50.0f; // ikinci dikdörtgenin ağırlığı
// Sürtünme katsayıları
const float FRICTION_RECTANGLE1 = 0.1f; // ilk dikdörtgenin sürtünme katsayısı
const float FRICTION_RECTANGLE2 = 0.2f; // ikinci dikdörtgenin sürtünme katsayısı
int main()
{
// Pencereyi oluştur
sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "Dikdörtgen Çarpışması");
// Mavi gökyüzü (dikey olarak tam pencere yüksekliği)
sf::RectangleShape sky(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT));
sky.setFillColor(sf::Color(135, 206, 250)); // Açık mavi gökyüzü rengi
// Yeşil zemin
sf::RectangleShape floor(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT - FLOOR_Y));
floor.setFillColor(sf::Color::Green);
floor.setPosition(0, FLOOR_Y); // Zemin seviyesini ayarla
// Mavi dikdörtgenler oluştur
sf::RectangleShape rectangle1(sf::Vector2f(50.0f, 50.0f));
rectangle1.setFillColor(sf::Color::Blue);
rectangle1.setPosition(100, FLOOR_Y); // Başlangıç konumu
sf::RectangleShape rectangle2(sf::Vector2f(50.0f, 50.0f));
rectangle2.setFillColor(sf::Color::Red);
rectangle2.setPosition(500, FLOOR_Y); // Başlangıç konumu
// Hız değişkenleri
float xVelocity1 = 400.0f; // ilk dikdörtgenin yatay hızı
float xVelocity2 = -150.0f; // ikinci dikdörtgenin yatay hızı
sf::Clock clock; // Zamanlayıcı oluştur
while (window.isOpen()) // Pencere açık olduğu sürece
{
sf::Event event;
while (window.pollEvent(event)) // Olayları kontrol et
{
if (event.type == sf::Event::Closed) // Pencere kapatıldıysa
window.close(); // Pencereyi kapat
}
float dt = clock.restart().asSeconds(); // Delta zamanını hesapla
// Sürtünmeyi uygula (dikey hareket için değil, sadece yatay hareket için)
if (rectangle1.getPosition().y == FLOOR_Y) {
xVelocity1 -= FRICTION_RECTANGLE1 * GRAVITY * dt * (xVelocity1 < 0 ? -1 : 1);
}
if (rectangle2.getPosition().y == FLOOR_Y) {
xVelocity2 -= FRICTION_RECTANGLE2 * GRAVITY * dt * (xVelocity2 < 0 ? -1 : 1);
}
// iki dikdörtgenin çarpışma kontrolü
if (rectangle1.getGlobalBounds().intersects(rectangle2.getGlobalBounds())) {
// Çarpışma sonrası momentum hesaplama
float totalWeight = RECTANGLE1_WEIGHT + RECTANGLE2_WEIGHT;
float newVelocity1 = ((RECTANGLE1_WEIGHT - RECTANGLE2_WEIGHT) / totalWeight) * xVelocity1 +
((2 * RECTANGLE2_WEIGHT) / totalWeight) * xVelocity2;
float newVelocity2 = ((2 * RECTANGLE1_WEIGHT) / totalWeight) * xVelocity1 +
((RECTANGLE2_WEIGHT - RECTANGLE1_WEIGHT) / totalWeight) * xVelocity2;
// Hızları güncelle
xVelocity1 = newVelocity1;
xVelocity2 = newVelocity2;
// Çarpışma sonrası konum düzeltme
if (xVelocity1 > 0) {
rectangle1.setPosition(rectangle2.getPosition().x - rectangle1.getSize().x, FLOOR_Y);
} else {
rectangle2.setPosition(rectangle1.getPosition().x + rectangle1.getSize().x, FLOOR_Y);
}
}
// Dikdörtgenlerin konumunu güncelle
rectangle1.move(xVelocity1 * dt, 0); // ilk dikdörtgeni yatay olarak hareket ettir
rectangle2.move(xVelocity2 * dt, 0); // ikinci dikdörtgeni yatay olarak hareket ettir
// Pencereyi temizle ve zemin ile gökyüzünü çiz
window.clear();
window.draw(sky); // Gökyüzünü çiz
window.draw(floor); // Zemini çiz
window.draw(rectangle1); // ilk dikdörtgeni çiz
window.draw(rectangle2); // ikinci dikdörtgeni çiz
window.display(); // Pencereyi güncelle
}
return 0; // Program başarıyla tamamlandı
}
(video artık mevcut değil)
dikdörtgenlere farklı ağırlıklar atadım ve zeminle etkileşmelerini sağladım.
ortaya çıkan tablo hayli ilginç oldu.
#include <SFML/Graphics.hpp> // SFML grafik kütüphanesini dahil et
#include <cmath> // Matematik fonksiyonları için gerekli kütüphane
#include <sstream> // String akışları için gerekli kütüphane
// Sabitler
const float GRAVITY = 981.0f; // Yerçekimi ivmesi (N)
const float FLOOR_Y = 540.0f; // Zemin seviyesi (Y-koordinatı)
const float WINDOW_WIDTH = 1920.0f; // Pencere genişliği
const float WINDOW_HEIGHT = 1080.0f; // Pencere yüksekliği
// Ağırlıklar (kg)
const float RECTANGLE1_WEIGHT = 3000.0f; // ilk dikdörtgenin ağırlığı
const float RECTANGLE2_WEIGHT = 50.0f; // ikinci dikdörtgenin ağırlığı
// Sürtünme katsayıları
const float FRICTION_RECTANGLE1 = 0.1f; // ilk dikdörtgenin sürtünme katsayısı
const float FRICTION_RECTANGLE2 = 0.2f; // ikinci dikdörtgenin sürtünme katsayısı
int main()
{
// Pencereyi oluştur
sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "Dikdörtgen Çarpışması");
// Mavi gökyüzü (dikey olarak tam pencere yüksekliği)
sf::RectangleShape sky(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT));
sky.setFillColor(sf::Color(135, 206, 250)); // Açık mavi gökyüzü rengi
// Yeşil zemin
sf::RectangleShape floor(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT - FLOOR_Y));
floor.setFillColor(sf::Color::Green);
floor.setPosition(0, FLOOR_Y); // Zemin seviyesini ayarla
// Mavi dikdörtgenler oluştur
sf::RectangleShape rectangle1(sf::Vector2f(50.0f, 50.0f));
rectangle1.setFillColor(sf::Color::Blue);
rectangle1.setPosition(100, FLOOR_Y); // Başlangıç konumu
sf::RectangleShape rectangle2(sf::Vector2f(50.0f, 50.0f));
rectangle2.setFillColor(sf::Color::Red);
rectangle2.setPosition(500, FLOOR_Y); // Başlangıç konumu
// Hız değişkenleri
float xVelocity1 = 400.0f; // ilk dikdörtgenin yatay hızı
float xVelocity2 = -150.0f; // ikinci dikdörtgenin yatay hızı
sf::Clock clock; // Zamanlayıcı oluştur
while (window.isOpen()) // Pencere açık olduğu sürece
{
sf::Event event;
while (window.pollEvent(event)) // Olayları kontrol et
{
if (event.type == sf::Event::Closed) // Pencere kapatıldıysa
window.close(); // Pencereyi kapat
}
float dt = clock.restart().asSeconds(); // Delta zamanını hesapla
// Sürtünmeyi uygula (dikey hareket için değil, sadece yatay hareket için)
if (rectangle1.getPosition().y == FLOOR_Y) {
xVelocity1 -= FRICTION_RECTANGLE1 * GRAVITY * dt * (xVelocity1 < 0 ? -1 : 1);
}
if (rectangle2.getPosition().y == FLOOR_Y) {
xVelocity2 -= FRICTION_RECTANGLE2 * GRAVITY * dt * (xVelocity2 < 0 ? -1 : 1);
}
// iki dikdörtgenin çarpışma kontrolü
if (rectangle1.getGlobalBounds().intersects(rectangle2.getGlobalBounds())) {
// Çarpışma sonrası momentum hesaplama
float totalWeight = RECTANGLE1_WEIGHT + RECTANGLE2_WEIGHT;
float newVelocity1 = ((RECTANGLE1_WEIGHT - RECTANGLE2_WEIGHT) / totalWeight) * xVelocity1 +
((2 * RECTANGLE2_WEIGHT) / totalWeight) * xVelocity2;
float newVelocity2 = ((2 * RECTANGLE1_WEIGHT) / totalWeight) * xVelocity1 +
((RECTANGLE2_WEIGHT - RECTANGLE1_WEIGHT) / totalWeight) * xVelocity2;
// Hızları güncelle
xVelocity1 = newVelocity1;
xVelocity2 = newVelocity2;
// Çarpışma sonrası konum düzeltme
if (xVelocity1 > 0) {
rectangle1.setPosition(rectangle2.getPosition().x - rectangle1.getSize().x, FLOOR_Y);
} else {
rectangle2.setPosition(rectangle1.getPosition().x + rectangle1.getSize().x, FLOOR_Y);
}
}
// Dikdörtgenlerin konumunu güncelle
rectangle1.move(xVelocity1 * dt, 0); // ilk dikdörtgeni yatay olarak hareket ettir
rectangle2.move(xVelocity2 * dt, 0); // ikinci dikdörtgeni yatay olarak hareket ettir
// Pencereyi temizle ve zemin ile gökyüzünü çiz
window.clear();
window.draw(sky); // Gökyüzünü çiz
window.draw(floor); // Zemini çiz
window.draw(rectangle1); // ilk dikdörtgeni çiz
window.draw(rectangle2); // ikinci dikdörtgeni çiz
window.display(); // Pencereyi güncelle
}
return 0; // Program başarıyla tamamlandı
}
Gündemdeki Haberler
Güncel Önemli Başlıklar