Skala mit Ausdehnung in positiven und negativen Bereich

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

CrowSmith

ehemals "Fleisch"

Betreff: Skala mit Ausdehnung in positiven und negativen Bereich

BeitragFr, Dez 10, 2010 23:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Ich benötige eine Skala, die ich je nach Größe eines Bildes in gleichen Teilen sowohl ins Pos. als auch ins Neg. Bewegen will.

Heisst:

Mein Bild ist z.B 3x3 Pixel groß.. Dann soll die Skala wie folgt sein:

-1 0 1

Und wenn mein Bild 7x3 Pixel groß ist so:

-3 -2 -1 0 1 2 3

und so weiter. (Wichtig ist nur die X-Länge, also oben 3 und unten 7..)

Wisst ihr was ich meine?

Danke im Vorraus für alle hilfreichen Antworten Shocked
Worklogs: TotalWar2D
Wbsites: Privat / Entwicklerstudio / Gewerbe (Folgen bald)
Smartphones: Samsung Galaxy S I9000 / Samsung Galaxy S2 I9100 / Samsung Galaxy S3 (Kommt 2012)
Notebook 1: HP Pavillion DV6700 (AMD 64 X2 TL-60 @ 2.00GHz, 4GB DDR3 1333MHz, Nvidia GeFroce 8400M GS, Win Vista Home Premium 32Bit)
Notebook 2: HP Pavillion DV6t Quad Edition (KOMMT BALD =] )
Notebook 3: Clevo X7200 (KOMMT BALD =] )
Desktop: (KOMMT BALD =] )

Xeres

Moderator

BeitragSa, Dez 11, 2010 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde mit Imagewidth arbeiten.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Tankbuster

BeitragSa, Dez 11, 2010 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir das an, und versuch es zu deiner benötigten Sache umzubaun Wink

Code: [AUSKLAPPEN]
Graphics 800,600
Bildx=7
lol=Int(Bildx/2)

For i=-lol To lol
    Text 400+i*50,300,i
Next
WaitKey()
Twitter
Download Jewel Snake!
Windows|Android

ZaP

BeitragSa, Dez 11, 2010 0:02
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Local img = LoadImage(...)
Local scala_max = Ceil(Float(ImageWidth(img)) / 2.0)
Local scala_min = scala_max - ImageWidth(img)


Sowas?
Starfare: Worklog, Website (download)

CrowSmith

ehemals "Fleisch"

BeitragSa, Dez 11, 2010 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Ich glaube die Antwort von Zap dürfte funktionieren, ich probiere es gleich mal aus !

EDIT:

Zap's Code hat nicht funktioniert, aber ich habe ein bisschen weitergetüftelt und den folgenden Code zusammengeschreinert. Funktioniert allerdings auch nicht so gut...
Kann mir bitte jemand helfen?? Ich muss das unbedingt schnell lösen Sad

Code: [AUSKLAPPEN]

Graphics 640, 480, 16, 2
SeedRnd MilliSecs()
SetBuffer BackBuffer()

;Skalenbildung: Ich benötige für meinen manuellen Heightmap-Editor eine individuelle neg-to-pos Skala, die je nach Bildgröße erzeugt wird.
;BSP:   Bild ist 5 Pixel breit = Skala -2,-1,0,1,2
;BSP:   Bild ist 8 Pixel breit = Skala -3.5,-2.5,-1.5,-0.5,0.5,1.5,2.5,3.5

Bildbreite#=2.0

Repeat

   If KeyHit(200)
      If Bildbreite <= 9.0
         Bildbreite=Bildbreite+1.0 ;Bild ist maximal 10 Pixel breit
      EndIf
   EndIf
   If KeyHit(208)
      If Bildbreite >= 3.0
         Bildbreite=Bildbreite-1.0 ;Bild ist minimal 2 Pixel breit
      EndIf
   EndIf

   If Bildbreite/2 = 0 ;Kein Rest, Bildbreite ist gerade (2,4,6,8,10,12,usw)
      For I=((Bildbreite/2.0)*-1)-0.5 To Bildbreite-0.5
         Text 320,210+(I*30),I,1,1
      Next
   Else ;Rest, Bildbreite ist ungerade (3,5,7,9,11,usw)
      For I=(Bildbreite/2.0)*-1 To Bildbreite
         Text 320,210+(I*30),I,1,1
      Next
   EndIf
      
   FlushKeys

    Flip 0
Forever
Worklogs: TotalWar2D
Wbsites: Privat / Entwicklerstudio / Gewerbe (Folgen bald)
Smartphones: Samsung Galaxy S I9000 / Samsung Galaxy S2 I9100 / Samsung Galaxy S3 (Kommt 2012)
Notebook 1: HP Pavillion DV6700 (AMD 64 X2 TL-60 @ 2.00GHz, 4GB DDR3 1333MHz, Nvidia GeFroce 8400M GS, Win Vista Home Premium 32Bit)
Notebook 2: HP Pavillion DV6t Quad Edition (KOMMT BALD =] )
Notebook 3: Clevo X7200 (KOMMT BALD =] )
Desktop: (KOMMT BALD =] )

Ana

BeitragSa, Dez 11, 2010 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir nicht sicher ob ich das problem richtig verstehe aber wenn ja ist das doch einfach nur

BlitzBasic: [AUSKLAPPEN]

Function Skala$(image)
x = ImageWidth(image)
T$ = ""
For i = -(x/2) To x/2
t = t + i + " "
Next
Return t
End Function
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

Tankbuster

BeitragSa, Dez 11, 2010 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Das von Ana ist eigentlich das selbe, das ich oben schonmal gepostet hab, nur hübscher verpackt. Das einzige Problem dabei ist, dass bei x=6 auch von xmin=-3 bis xmax=3 skaliert wird, es also 7 anstatt 6 Felder gibt (wegen der 0). Das kann man aber einfach durch eine "If Bildx MOD 2 = 0 Then verändere_skala()" Abfrage umgehen da das nur bei geraden Zahlen auftritt.
Twitter
Download Jewel Snake!
Windows|Android

Ana

BeitragSa, Dez 11, 2010 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja tank, das war auch ein wenig beabsichtigt deins nochmal zu posten weil das so übergangen wurde Wink

Dachte ich mir verpacke ich es ein wenig hübscher vielleicht wird es dann gesehen und im Grunde kann man ja schon fast -(x/2)-1 nehmen, da man ja eigentlich immer den fall hat das die Pixel gerade sind, also kein vernüftiges Image hat ungerade anzahl an Pixel höchstens mal eine 5 aber im grunde sind doch gerade zahlen und 2er potenz voll im trend Smile
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

CrowSmith

ehemals "Fleisch"

BeitragSa, Dez 11, 2010 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs gelöst Razz war ein Denkfehler den ich mir bei meinen Notizen (Ziemlich unordentlich) geleistet habe... Sorry für die blöde Frage

Hier die Lösung:

Code: [AUSKLAPPEN]

Graphics 640, 480, 16, 2
SeedRnd MilliSecs()
SetBuffer BackBuffer()

;Skalenbildung: Ich benötige für meinen manuellen Heightmap-Editor eine individuelle neg-to-pos Skala, die je nach Bildgröße erzeugt wird.
;BSP:   Bild ist 5 Pixel breit = Skala -2,-1,0,1,2
;BSP:   Bild ist 8 Pixel breit = Skala -3.5,-2.5,-1.5,-0.5,0.5,1.5,2.5,3.5

Bildbreite#=2.0

Repeat

   If KeyHit(200)
      If Bildbreite <= 9.0
         Bildbreite=Bildbreite+1.0 ;Bild ist maximal 10 Pixel breit
      EndIf
   EndIf
   If KeyHit(208)
      If Bildbreite >= 3.0
         Bildbreite=Bildbreite-1.0 ;Bild ist minimal 2 Pixel breit
      EndIf
   EndIf
   
   For I#=-(Bildbreite/2.0)+0.5 To (Bildbreite/2.0)-0.5 Step 1.0
      Text 320,210+(I*30),I,1,1
   Next

      
   FlushKeys

    Flip
   Cls
Forever


Trotzdem danke für alle Antworten! MfG, Fleisch
Worklogs: TotalWar2D
Wbsites: Privat / Entwicklerstudio / Gewerbe (Folgen bald)
Smartphones: Samsung Galaxy S I9000 / Samsung Galaxy S2 I9100 / Samsung Galaxy S3 (Kommt 2012)
Notebook 1: HP Pavillion DV6700 (AMD 64 X2 TL-60 @ 2.00GHz, 4GB DDR3 1333MHz, Nvidia GeFroce 8400M GS, Win Vista Home Premium 32Bit)
Notebook 2: HP Pavillion DV6t Quad Edition (KOMMT BALD =] )
Notebook 3: Clevo X7200 (KOMMT BALD =] )
Desktop: (KOMMT BALD =] )

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group