skalieren von Arrays < Sonstige < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:59 Mo 11.04.2005 | Autor: | kann_nix |
Hallo Mathe-Profis
Fast schon peinlich ist mir dieses problem.
Seit stunden frimel ich da dran rum aber irgendwie habe ich einen Blackout.
Mein Problem:
also:
2 Skalen:
Die erste geht von z.B. 0 - 1000 ( der auszufüllende Bereich )
Die zweite geht von 0 - 255 ( die positionen der Farben )
Die erste Skala wird abgeschnitten und geht jetzt 500 - 1000
Die zweite Skala muss sich nun in Richtung 255 zusammenschieben.
In diesem Fall fangen die Farben erst ab pos. 127.5 an, und gehen dann
dichter gedrängt weiter bis 255.
------
bereichAnfang = 500;
bereichEnde = 1000;
pos = [0, 30, 50, 140, 255];
for ( var i = 0; i < pos.length; i++){
pos[i] = ?????
}
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 23:09 Mo 11.04.2005 | Autor: | Max |
Hallo kann_nix,
dir ein herzliches
irgendwie finde ich die Frage nicht so klar formuliert, wie können Mathematik aber nicht Informatik.
Möchstest du wissen, wie man jetzt jeden $x$ der zweiten Skala (bisher von 0-255) den neuen Wert $x'$ in der verkürzten Skala von 127,5-255 errechnet?
[mm] $x'=\frac [/mm] {x}{510}+127,5$
Max
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 23:45 Mo 11.04.2005 | Autor: | kann_nix |
Ach *da* ist der Antwort-Knopf...
Na gut, dann will ich es mal anders erklären.
0 bis x1 ist gleich 0 bis 255 -- das ist einfach.
x bis x1 ist gleich y bis 255 -- hmmm...
Fest steht:
x ist immer kleiner als x1, beide sind immer grösser als 0.
y kann nur von 0 - 255 gehen.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 23:46 Mo 11.04.2005 | Autor: | kann_nix |
ach so, ich suche y
|
|
|
|
|
Hallo!
Wie wäre es, wie folgt? :
var n = pos.length;
if (i < n-1)
y = pos[i] + 127,5;
else
y =255;
Das gesamte dann in deiner for-Schleife.
Falls ich dein Anliegen richtig verstanden hab...
Aber demnächst bitte sowas im Informatik-forum unter www.vorhilfe.de fragen!!! !
Hoffe, ich konnte dir helfen.
Gruß Isi
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:39 Di 12.04.2005 | Autor: | kann_nix |
Ha! Ich habs - der knoten im Kopf hat sich gelöst:
rat[i] = (rat[i] / (r2 / (r2 - r1))) + (255 / r2 * r1) ;
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 01:23 Di 12.04.2005 | Autor: | kann_nix |
Bin wohl wirklich im falschen Forum.
Ich habe die Frage jetzt im www.flashforum.de gestellt.
-- Danke für eure mühe--.
Hier nochmal das ganze prob.
1: | function draw(pos, x, y, r1, r2, col, alpha, ratio){
| 2: |
| 3: | var pos2 = pos + 1;
| 4: | var pi4 = Math.PI / 4;
| 5: | var pi8 = Math.PI / 8;
| 6: | var _cos = Math.cos(pi8);
| 7: |
| 8: | var px1 = x + (Math.cos(pi4 * pos) * r1);
| 9: | var py1 = y + (Math.sin(pi4 * pos) * r1);
| 10: |
| 11: | var px2c = x + (Math.cos((pi4 * pos2) - pi8) * (r1 / _cos));
| 12: | var py2c = y + (Math.sin((pi4 * pos2) - pi8) * (r1 / _cos));
| 13: | var px2 = x + (Math.cos(pi4 * pos2) * r1);
| 14: | var py2 = y + (Math.sin(pi4 * pos2) * r1);
| 15: |
| 16: | var px3 = x + (Math.cos(pi4 * pos2) * r2);
| 17: | var py3 = y + (Math.sin(pi4 * pos2) * r2);
| 18: |
| 19: | var px4c = x + (Math.cos((pi4 * pos2) - pi8) * (r2 / _cos));
| 20: | var py4c = y + (Math.sin((pi4 * pos2) - pi8) * (r2 / _cos));
| 21: | var px4 = x + (Math.cos(pi4 * pos) * r2);
| 22: | var py4 = y + (Math.sin(pi4 * pos) * r2);
| 23: |
| 24: | var rat = ratio.slice();
| 25: | var i;
| 26: | for ( var i = 0; i < rat.length; i++){
| 27: | rat[i] = ?????????????
| 28: | }
| 29: |
| 30: | var matrix = { matrixType:"box", x: - r2 + x, y: - r2 + y, w: (r2 * 2), h: (r2 * 2), r: Math.PI };
| 31: |
| 32: | this.lineStyle(0,0,0);
| 33: | this.beginGradientFill("radial", col, alpha, rat, matrix);
| 34: | this.moveTo(px1, py1);
| 35: | this.curveTo(px2c, py2c, px2, py2);
| 36: | this.lineTo(px3, py3);
| 37: | this.curveTo(px4c, py4c, px4, py4);
| 38: | this.lineTo(px1, py1);
| 39: | this.endFill();
| 40: | }
| 41: |
| 42: | pos = 1;
| 43: | draw(pos, 100, 100, 50, 100, [0xff0000, 0, 0xffffff], [100,100, 100], [0, 128, 255]); |
|
|
|
|