Sizce kod mantıklımı resimleri çevirmek içim #include "stk.h"
int doner; // Döndürme kontrol değişkeni
static int angle = 0; // Döndürme açısı
VarGet("doner", &doner);
if (doner == 1) {
// Tüm resimleri gizle
ImageSet("Halka", "Visible", "0");
ImageSet("Halka45", "Visible", "0");
ImageSet("Halka90", "Visible", "0");
VarSeti("doner", 0); // Döndürme kapalı
} else {
// Döndürme işlemi
angle += 45; // Açıyı 45 derece artır
if (angle >= 135) { // 135 dereceyi geçince tekrar sıfırla
angle = 0;
}
// Tüm resimleri gizle
ImageSet("Halka", "Visible", "0");
ImageSet("Halka45", "Visible", "0");
ImageSet("Halka90", "Visible", "0");
// Açıya uygun resmi görünür yap
if (angle == 0) {
ImageSet("Halka", "Visible", "1");
} else if (angle == 45) {
ImageSet("Halka45", "Visible", "1");
} else if (angle == 90) {
ImageSet("Halka90", "Visible", "1");
}
VarSeti("doner", 1); // Döndürme açık
}
Merhaba; Kodunuz genel mantık açısından işlevsel görünüyor. Ancak, bazı iyileştirmeler yapabilirsiniz. ImageSet çağrıları her durumda tekrar ediliyor. Bunu bir fonksiyon içine alarak daha temiz bir yapı elde edebilirsiniz:
void HideAllImages()
{ ImageSet("Halka", "Visible", "0"); ImageSet("Halka45", "Visible", "0"); ImageSet("Halka90", "Visible", "0"); } Açı ve Resim Eşleştirme:
Açılara uygun resimlerin görünürlüğünü ayarlamak için bir switch-case yapısı kullanılabilir. Bu, if-else zincirinden daha okunaklıdır:
switch (angle) { case 0: ImageSet("Halka", "Visible", "1"); break; case 45: ImageSet("Halka45", "Visible", "1"); break; case 90: ImageSet("Halka90", "Visible", "1"); break; } Daha Esnek Döndürme:
Döndürme adımlarını 45 derece ile sabitlemek yerine, esnek bir yapı oluşturabilirsiniz. Örneğin, açı artışını bir değişkene bağlamak:
int step = 45; // Döndürme adımı angle += step; if (angle >= 135) { angle = 0; }
Fonksiyonlara Bölme:
Kodun okunabilirliğini artırmak için işlevleri ayrı fonksiyonlara bölebilirsiniz. Örneğin, döndürme işlemini bir fonksiyon haline getirmek:
void RotateImage(int angle) { HideAllImages(); switch (angle) { case 0: ImageSet("Halka", "Visible", "1"); break; case 45: ImageSet("Halka45", "Visible", "1"); break; case 90: ImageSet("Halka90", "Visible", "1"); break; } } Revize edilmiş kod ektedir.