Wie ändere ich das Seitenverhältnis eines Rechtecks bei gleichbleibendem Flächeninhalt?

...komplette Frage anzeigen

3 Antworten

A ist der Flächeninhalt

va ist der erste Teil des Zielverhältnisses;

vb ist der zweite Teil des Zielverhältnisses;

a ist seite a;

b ist seite b;

function umwandeln(int A,int va,int vb){

double k=A/(va*vb);

a=k*va;

b=k*vb;

}

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Rotfuxs
05.02.2017, 18:21

a = 700
b = 200
A = a * b = 140.000
va = 4
vb = 3
k = sqrt(A / (va * vb)) = 108,0123449
a2 = k * va = 432
b2 = k * vb = 324
A2 = a2 * b2 = 139.968

Super! Aber auch hier eine kleine Differenz zwischen Taschenrechner und JavaScript. :-/
Kannst du mir das erklären? :-D
Das kann doch nicht durch Rundung sein, oder?

0

6:1 -> 16:9
6*1 -> 16*9
6 -> 144
60k -> 60k, also 6/144 * (9 bzw 16) * 100px

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von rumar
05.02.2017, 16:19

hä ?

0
Kommentar von Rotfuxs
06.02.2017, 21:16

Besten Dank! :-)
Letztendlich kommt eurer beider Lösung als beste Antwort in Frage. Die von Destranix fand ich persönlich minimal schöner. Das is aber nu reine Geschmackssache.

Wobei deine Antwort mir witziger Weise geholfen hat die von ihm zu verstehen. :-)

Danke dir!
Gruß
Rot-Fuxs

1

Wenn u und v die neuen Seitenlängen sein sollen, dann hast du:

1.)  u : v = 16 : 9

2.)  u * v = a * b = 60000

Setze also etwa  u := (16/9) * v   anstelle von u in die zweite Gleichung ein und berechne daraus den Wert von v .

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Rotfuxs
05.02.2017, 17:02

Okay versteh ich... Aber irgendwie hilft mir das nicht. :-/

u : (16/9) * v
u : 1,7778 * v
u : ...

Und da bleib ich stecken. Wie geht's weiter? ^,^'

0

Was möchtest Du wissen?