Leinwand ist cool! - Seite 15

 
Реter Konow:

Ja, es sieht sehr gut aus. Qualitätsformen von Kreisen.

Aber Sie verwenden die Klasse CCanvas, und dort sind die Koordinaten in int.

Ich verwende nicht die CCanvas-Klasse für geglättete Kreise, sondern meine eigene Klasse mit dem Typ double

 
Реter Konow:

Und ResourseFree() ?

ResourceFree funktioniert nur bei Ressourcen, deren Namen Sie kennen. Außerdem kann die Ressource nur von dem Programm aus gelöscht werden, das sie erstellt hat. Da sie für andere schreibgeschützt ist.

 
Nikolai Semko:

Ich verwende keine CCanvas-Klasse für glatte Kreise, sondern meine eigene Klasse mit dem Typ double

Und wie werden sie sich bewegen, wenn Sie verhindern, dass sie ihre Größe verändern?

 
fxsaber:

Nun, aus irgendeinem Grund funktionierte es nicht, da ich alles übrig hatte.

Ich habe mich nicht allzu sehr um den Flammencode gekümmert. Ungewöhnliche Situationen entstehen. Wenn es mit einem Fehler endet, dann ist es einfach nicht zum Destruktor gelangt.

ZS Ich gehe in diesem Fall in die Objekte. Ich drücke auf "alle" und suche meine Bitmap und lösche sie. Die Frage ist nur, ob der Rusurus in diesem Fall wirklich gelöscht wird?

 
fxsaber:

ResourceFree funktioniert nur bei Ressourcen, deren Namen Sie kennen. Außerdem kann die Ressource nur von dem Programm aus gelöscht werden, das sie erstellt hat. Da sie für andere schreibgeschützt ist.

Daher sollte der Entwickler für dieses Problem sorgen. Geben Sie dem Benutzer die Möglichkeit, die Ressource zu zerstören, indem Sie eine der Eigenschaften des Objekts setzen, das diese Ressource trägt. Das Skript prüft zum Beispiel

ObjectGetInteger(0,"MT object",OBJPROP_SELECTED);

und wenn der Benutzer die Objekteigenschaft

ObjectSetInteger(0,"MT object",OBJPROP_SELECTED,1);

Das Skript vernichtet die Ressource und löscht ihr Objekt.

 
Реter Konow:

Wie werden sie sich bewegen, wenn Sie ihre Größe nicht mehr ändern?

Setzen Sie die letzten beiden Parameter auf denselben Wert, wenn Sie das Skript ausführen (maximale Größe = minimale Größe), und die Kreise ändern ihre Größe nicht, sondern bewegen sich nur gleichmäßig, weil sie eine doppelte Koordinate haben.

 
Nikolai Semko:

Wenn Sie die beiden letzten Parameter auf denselben Wert setzen (maximale Größe = minimale Größe), ändern die Kreise ihre Größe nicht, sondern bewegen sich nur gleichmäßig, da sie doppelte Koordinaten haben.

Ja, sie bewegen sich flüssiger als Kreise, die auf int-Koordinaten basieren. Aber vielleicht liegt das daran, dass der Kreis selbst glatter ist. Mit anderen Worten: Es ist weniger Ruckeln zu spüren.

 
Dmitry Fedoseev:

Es gibt eine Vielzahl von 3D-Bibliotheken, die schon seit hundert Jahren in JavaScript geschrieben werden. Der einfachste und direkteste Weg ist, sie von dort nach hier umzuschreiben.

Natürlich nicht 100 Jahre lang, aber ein paar.

Ich habe es versucht - es hat nicht funktioniert. Alles in unleserlicher Form als durchgehende einzelne Zeile. Es ist schwer, sich einen Reim darauf zu machen. Es ist einfacher, es selbst zu tun.

 
Реter Konow:

Ja, sie bewegen sich reibungsloser als Kreise, die auf int-Koordinaten basieren. Aber vielleicht liegt das daran, dass der Kreis selbst glatter ist. Mit anderen Worten: Die Zuckungen sind weniger ausgeprägt.

Peter. Sie reden Unsinn. Ich weiß, wovon ich spreche, denn ich habe diese Kreis-Algorithmen zu 100 % selbst entwickelt. Vertrauen Sie Ihren Augen, nicht Ihrer Strebermentalität.

Hier ist die Spezifikation für diesen Kreis:

void   iCanvas::iCircle(double  x,double  y,double  r,uint clr=255)
 
Nikolai Semko:

Peter. Du redest Unsinn. Ich weiß, wovon ich spreche, denn ich bin zu 100 % selbst der Schöpfer dieser Kreis-Algorithmen. Vertrauen Sie Ihren Augen, nicht Ihrer Strebermentalität.

In Ordnung. (gluckst) Wenn Sie das sagen.