Weder noch!

Ob man es "leichter" oder "schwerer" hat, hängt kaum mit dem Geschlecht, als viel mehr dem Elternhaus, Bildung, etwaigen Behinderungen, der finanziellen Situation, der Herkunft, dem Wohnort, uvm. zusammen.

Das Geschlecht spielt - verglichen mit diesen Punkten - nur eine untergeordnete Rolle. :)

...zur Antwort
constexpr size_t bufsz { 8 };
using arr_type = int;

arr_type * const arr { new arr_type[bufsz] {} };
// oder ...
// arr_type * const arr { malloc(sizeof(*arr) * bufsz) };

cout << sizeof(arr) << endl;
cout << (sizeof(arr) * bufsz) << endl;

for (size_t i {}; i < bufsz; ++i) {
  arr[i] = static_cast<arr_type>(i);
  cout << arr[i] << endl;
}

delete[] arr;
// oder ...
// free(arr);
...zur Antwort
Java Ellipse aus Linien zeichnen - Fehler wegen nur ganzzahlig möglichen Winkeln?

Hallo,

ich möchte in Java einen Farbkreis in Form eines Ellipse zeichnen; dafür zeichne ich Linien verschiedener Farben vom Mittelpunkt aus in einem bestimmten Winkel zum Endpunkt, der auf der imaginären Form einer Ellipse liegt. So weit so gut, das funktioniert auch.

Mein Problem allerdings ist, dass die Farbkreis-Ellipse nach dem Zeichnen ganz und gar nicht so aussieht, wie sie aussehen sollte:

Ich vermute, dass es daran liegt, dass die Berechnungen Gleitkommazahlen ergeben, die ich aber ganzzahlig runden muss, damit ich damit das Ende einer Linie als Punkt kennzeichnen kann. Dadurch liegen die Linien womöglich an manchen Stellen aufeinander und an anderen Stellen existieren keine Linien (ist das so?).

Hier der Code zum Definieren der Linien mit Farbe und Index:

Line[] lines = new Line[3*255]; 
int[] color = {255,0,0}; 
for(int i=0; i<3; i++) 
   for(int j=0; j<255; j++){ 
      color[i]--; color[(i+1)%3]++; 
      lines[i*255 + j] = new Line(i*255 + j + 1, new Color(color[0], color[1], color[2])); 
} 

Zeichne ich die Linien mit aufsteigender Länge nebeneinander, funktioniert der Farbübergang so wie geplant - nur die Farbellipse macht Probleme.

Hier der Konstruktor der Line-Klasse (mehr enthält sie mom. noch nicht):

Line(int index, Color color){
	this.index = index;
	this.color = color;
	this.angle = this.index*360./765; //3*255 Farben
    int a = Ellipse.a, b = Ellipse.b;
    double x = (a*b/Math.sqrt(b*b+Math.pow(a*Math.tan(angle), 2))),
           y = x*Math.tan(angle);
    if(angle > 90 && angle < 270) x = -x;
    this.end = new Point((int) x, (int) y);
    this.length = Point.distance(0, 0, end.x, end.y);
}

Die paint-Methode der Frame Klasse (ja, ich programmiere in Swing, die Ellipse ist eher ein quick&dirty-Projekt):

@Override public void paint(Graphics g){
	for(int i=0; i<3*255; i++){ 
       g.setColor(lines[i].color); 
       g.drawLine(m.x, m.y, lines[i].end.x+m.x, lines[i].end.y+m.y); 
    } 
} 

Warum sieht die gezeichnete Ellipse so grausam im Gegensatz zum Dreieck aus und separiert optisch so stark zwischen rot und blau? Woran liegt das bzw. wie kann ich es beheben?

Vielen Dank schon mal im Voraus.

LG

...zur Frage

Der Effekt ähnelt einem Problem, dass ich mal beim "händischen" Drehen von Bildern hatte, ohne AffineTransform zu nutzen.

Ich habe dabei fälschlicherweise die Koordinaten eines Pixels des Quellbildes, um das Zentrum gedreht, und den Pixel an den Zielkoordinaten auf die Farbe des ursprünglichen Pixels gesetzt. Klingt naheliegend, oder? Funktioniert aber nicht und ergibt viele leere Stellen, die entfernt an die leeren Bereiche deiner Ellipse erinnern.

Die Lösung war, den Pixel aus dem Zielbild entgegengesetzt (!) zu drehen, und falls diese Koordinaten innerhalb des Quellbildes lagen, die entsprechende Pixelfarbe von dort zu übernehmen.

Statt also das Quellbild im Uhrzeigersinn zu drehen, wird das Zielbild entgegen gesetzt dem Urzeigersinn gedreht.

Die Lösung war also - wie so oft in der Mathematik - das Ganze von hinten anzugehen!

Zu deinem Problem mit der Ellipse: Das kannst du lösen, indem du keine Linien mehr zeichnest, sondern Dreiecke, bei denen zwei Punkte benachbarte Linienenden am Rand sind, und der dritte Punkte im Mittelpunkt der Ellipse liegt.

Wie du den tollen Effekt mit der Rot- / Blau-Separation hinbekommen hast, weiß ich aber nicht. Sieht aber interessant aus! :)

...zur Antwort

Dafür gibt es standardmäßig bereits das "csv" Modul:

import codecs, csv

with codecs.open('data.csv', 'r', 'utf-8', 'strict') as fh:
  cr = csv.reader(fh, delimiter=' ', quotechar='"')

  for row in cr:
    print(row)

Weitere Details findest du in den offizellen API-Docs:

https://docs.python.org/3/library/csv.html

...zur Antwort

Das ist illegal, denn es verstößt gegen die DSGVO!

IP-Adressen gelten ausdrücklich als Personenbezogene Daten und ein IP-Logging ist ausdrücklich verboten, erst recht in "nackten" Textdateien, ohne Verschlüsselung und vor allem ohne Anonymisierung!

Du wirst dein Skript wegschmeißen, und dir andere Möglichkeiten der Spam- / Betrug-Erkennung suchen müssen.

Informiere dich DRINGENST zu dem Thema und erfrage evtl. bei einem Anwalt etwaige Details. Aber so in der jetzigen Form ist dein Skript bzw. die Speicherung der IP-Adressen für diesen Einsatzzweck definitiv zu 100% illegal und zieht u. U. unangenehme Strafen in Form von möglicherweise hohen Geldbußen nach sich.

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.