bugün
- kibarhergele10
- sözlüğün kırbacı10
- hilafetin türklere faydası9
- bir sözlük hanımı dmye nasıl davet edilir4
- sözlüğün vahşi kelebeğine eş arıyoruz29
- cuma namazına gitmeyen yazarlar silinsin8
- yakıştırdığım çiftler serisi 153
- kız sanılan yazarlar6
- insanların birbirini gizlice puanlaması3
- şeytanın kariyer değişikline gitmesi3
- evde tekken yan odadan gelen khkaha ve ağlama sesi6
- 9 ekim 2026 gazetecilere operasyon4
- öbür dünyada referans istenmesi2
- yazarların sağlık sorunları7
- istanbul şu an güneşli 22 derece4
- samimiyetin bir noktadan sonra hakarete dönüşmesi3
- 9 ekim 2026 galatasaray kasımpaşa maçı11
- hangi yazarla çift olursunuz28
- ölümden sonra yapılan performans değerlendirmesi2
- ucan tekme atan hipopotam43
- pforzheim şu an 10 derece3
- patatesin her ortama uyum sağlaması5
- kasımpaşa2
- futbol8
- galatasaray4
- berna laçin'in gözaltına alınması41
- azerbaycan3
- whatsapp telegram discord grupları sözlüğü bitirdi18
- uyuyan insanın asıl amacı3
- tai lung2
- özgür özel'in mersin de tutuklu başkan ziyareti2
- erecto birader ile edirne ciğer tavası yemek2
- karmanın tam iyi çalışmaması2
- sinek as6
- penis boyu takıntısı6
- mezar taşına karekod yaptırmak2
- hesabı siliyorum sözlük bir şey diyor musun19
- ya bi siktirin gidin15
- togg5
- kendinden zeki biriyle konuştuğunu anladığın an3
- bir erkeğe ilk adım nasıl atılır18
- mezar komşunuzun çok ses yapması3
- çindeki üç boğaz barajı dünyanın eksenini kaydırdı3
- sözlükte eleştiri kaldıramayan küçük krallık19
- silvermist sözlükten gitmesin kampanyası11
- yazar fake mi diye arkadaşlarına mesaj atmak35
- insanların durduk yere birbirine ayar vermesi2
- tomtom mahallesi4
- bakıp bakıp adım atmayan erkek17
- cemil tugay12
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