Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 14:18

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Code kürzen?

Discussion on Code kürzen? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
TeraTroll's Avatar
 
elite*gold: 260
Join Date: Sep 2012
Posts: 206
Received Thanks: 13
Code kürzen?

Guten Abend/Nacht liebe Comm,

ich habe mal wieder ein Anligen(wie auch sonst),
1.) Wo genau liegt der Fehler an diesem Code?

2.) Wie könnte man diesen Teil bzw. diese zwei Schleifen in eine packen?
TeraTroll is offline  
Old 08/21/2014, 00:43   #2
 
strubelz's Avatar
 
elite*gold: 31
Join Date: Jan 2014
Posts: 310
Received Thanks: 55
So wie ich das sehe, bleiben die Werte die du in dem Schleifen ausrechnest konstant, und haben eine feste länge, du kannst die Werte als einmal ausrechnen und sie dann in ein Array packen.
Pseudeo (vieleicht auch lauffähig, habs aber ohne IDE geschrieben) Code:
Code:
import java.awt.*;
import java.util.Random;
import javax.swing.*;

public class Main extends JPanel
{
  private static final long serialVersionUID = -2294685016438617741L;
  private static final Random r = new Random();
int[] ax = new int[größe des Arrays]; //größe des Arrays ist die Anzahl wie viele Zahlen in den Array passen sollen, die musst du halt einmal ausrechen/ausprinten lassen
int[] ay = new int[größe des Arrays]; 

  @Override
  protected void paintComponent( Graphics g )
  {
    super.paintComponent( g );
    		g.setColor(new Color(255,0,0));
    			for(int i : ax){
    				g.drawLine(i, 0, 0, 0);
    			}
    			for(int i : ay){
    				g.drawLine(i, 0, 0, 0);
    			 }
 	//oder wenn du es in einer Schleife willst
for (int i = 0; i < Math.max(ax.lenght, ay.lenght); i++) {
if (i < ax.lenght) {
g.drawLine(ax[i], 0, 0, 0);
}
if (i < ay.lenght) {
g.drawLine(ay[i], 0, 0, 0);
}
}
  }

  public static void main( String[] args )
  {
    JFrame f = new JFrame( "Neoplastizismus" );
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    f.setSize( 300, 300 );
    f.add( new Main() );
    f.setVisible( true );
    f.setResizable(false);
    f.setLocationRelativeTo(null);
int i = 0;
    		g.setColor(new Color(255,0,0));
    			for(int x = 10; x < getWidth() -10; x=+10){
    				ax[i] = x;
i++;
    			}
i = 0;
    			for(int y = 10; y < getHeight() - 10; y=+10){
    				ay[i] = y;
i++;
    			}

  }
}
Aber ich glaube nicht das du damit wirklich Leistung sparts
strubelz is offline  
Old 08/21/2014, 07:16   #3


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
1.) Was soll das denn? Was funktioniert nicht und was hast du getan, um das Problem zu beheben? Ich kann kein Java, kann mir aber gut vorstellen das die Linien die du zeichnest nicht auftauchen, weil deren Länge 0 ist. Du übergibst ja nichts anderes als die X Koordinate.

2.) Gar nicht. Außer, wenn garantiert ist, das die Breite von X immer den selben Wert besitzt wie die Höhe von Y. Dann könntest du in einer Schleife beide Linien zeichnen.
Mostey is offline  
Old 08/21/2014, 11:06   #4
 
elite*gold: 0
Join Date: Jan 2012
Posts: 759
Received Thanks: 416
Du schreibst in den Schleifen x=+10. Das weißt x nach jedem Durchlauf den Wert +10, also 10 zu.
Du möchtest aber x+=10, was den Wert von x nach jedem Durchlauf um 10 erhöht.
dowhile is offline  
Old 08/21/2014, 13:01   #5
 
MrDami123's Avatar
 
elite*gold: 56
Join Date: Oct 2010
Posts: 3,409
Received Thanks: 1,219
Die zwei Schleifen machen genau das identische. Wieso machst du die nicht zur einer und übergibst jeweils den Wert Height oder Width?
MrDami123 is offline  
Old 08/21/2014, 14:36   #6
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
Quote:
Originally Posted by MrDami123 View Post
Die zwei Schleifen machen genau das identische. Wieso machst du die nicht zur einer und übergibst jeweils den Wert Height oder Width?
Weil Width größer oder kleiner als Height sein könnte.
​Tension is offline  
Old 08/21/2014, 16:51   #7
 
TeraTroll's Avatar
 
elite*gold: 260
Join Date: Sep 2012
Posts: 206
Received Thanks: 13
Richtig...ich wollte an sich von den Seiten, Linien bis zur Mitte des Bildschirms führen lassen...
Also in etwa so:
Code:
g.drawLine(x,y,getHeight()/2,getWidth()/2)
Jedoch wenn ich das Programm starte entsteht ein durchsichtiges Fenster....


EDIT:
Habe nochmal rumprobiert und es funktioniert *_*
Code:
    		g.setColor(new Color(255,0,0));
    			for(int x = 10; x < getWidth() -10; x+=10){
    				g.drawLine(x, 0, getHeight()/2, getWidth()/2);
    			}
    			for(int y = 10; y < getHeight() - 10; y+=10){
    				g.drawLine(0, y, getHeight()/2, getWidth()/2);
    			}
TeraTroll is offline  
Old 08/21/2014, 17:08   #8
 
Netzgeist's Avatar
 
elite*gold: 72
Join Date: Mar 2009
Posts: 265
Received Thanks: 72
1)
Deine Schleife ist syntaktisch falsch. Im Iterationsschritt benutzt du eine Zuweisung auf 10. X wird immer 10 bleiben und du wirst die Schleife nicht verlassen. Deshalb wird (fast) nichts gezeichnet. Die Fehlende Funktionalität des gesamten Frames (zB. dem close-event) hat dich nicht stutzig gemacht?
Richtig wäre x += 10 oder x = x +10.

2)
Der Rumpf beider Schleifen tut auch in Zukunft exakt das selbe? Dann vergleiche beide Iterationsbedingungen und nimm die größere:
Code:
int max = ((getWidth() > getHeight()) ? getWidth() : getHeight()) - 10;
        
for (int x = 10; x < max; x += 10) {
    g.drawLine(x, x, getHeight() / 2, getWidth() / 2);
}
Passieren im Rumpf in Zukunft verschiedene Dinge brauchst du jedoch weiterhin 2 Schleifen.
Netzgeist is offline  
Old 08/21/2014, 17:15   #9
 
TeraTroll's Avatar
 
elite*gold: 260
Join Date: Sep 2012
Posts: 206
Received Thanks: 13
Es funktioniert nun =) trotzdem vielen dank nun muss ich schauen wie ich es von den entgegen gesetzten Rchtungen hinbekomme. ^^

Edit:
Das habe ich nun auch hinbekommen war ja nicht so schwer haha ^^



MfG Joshi
TeraTroll is offline  
Reply


Similar Threads Similar Threads
Code kürzen?
07/13/2014 - General Coding - 4 Replies
Hey Leute! Hab folgendes Problem, ich will einen Längeren Code kürzen damit der ganze Code besser aussieht, funktionieren tut es nur habe ich 1 Problem: Wenn ich diesen Code: " " So kürze:
Ddns kürzen
04/10/2014 - Technical Support - 2 Replies
Hallo ich habe eine kostenlose ddns und ich würde sie gerne kürzen mit dot.tk oder anderen Anbietern mit dot.tk bekomme ich es nicht hin. Bitte helft mir! Danke hfw2003
Brüche kürzen C++ ?
02/16/2012 - C/C++ - 10 Replies
Hey Guyz. Hat jemand von euch eine Class für das Kürzen von Brüchen in C++ ? Meine Class sieht wie folgt aus: class Bruch { public: Bruch()
Musik Kürzen
05/11/2011 - Music - 3 Replies
Hey, Leute auf anfrage von nem friend zeig ich euch wie man musik kürzt. Also ich mein das so wenn euer lied nur 4minuten geht die audio datei 5minuten dann kann das schon nerven :facepalm: Wie man sie kürzt?Recht simpel. Jeder von euch müsste den windows movie maker aufm pc haben. Dann importiert ihr die gewünschte musik und geht auf die stelle wo eure musik vorbei geht.Dann drückt ihr auf trennen,Dann könnt ihr den rechten teil löschen da er ja keine musik beinhaltet.. dann noch auf film...
Cooldown kürzen?
07/15/2010 - 4Story - 20 Replies
Leute ich will mit bogenschütze pvp eqi uppen , aber man muss ja immer 90sek warten kann man das irgendwie verringern? hilfe wäre nett



All times are GMT +2. The time now is 14:18.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.