// methods // static method om te bepalen of 2 objecten van het type // rechthoek elkaar raken of buiten het tekengebied vallen public static Vlak GrensBereikt(Rechthoek r1, Rechthoek r2) { Vlak vlak = Vlak.Geen; // overschrijden linker of rechterkant if (r1.A.X <= r2.A.X || r1.B.X >= r2.B.X) { vlak = Vlak.Verticaal; } // overschrijden onder of bovenrand if (r1.A.Y <= r2.A.Y || r1.C.Y >= r2.C.Y) { if (vlak == Vlak.Verticaal) { vlak = Vlak.Hoek; } else { vlak = Vlak.Horizontaal; } } return(vlak); }
protected void InitClass() { KaderKleur = Color.Black; Kleur = Color.WhiteSmoke; WisKleur = Color.PaleGoldenrod; Tekengebied = new Rechthoek(); // Oorspronkelijk geen default constructor in Rechthoek _id = Guid.NewGuid(); }
private void initClass() { KaderKleur = Color.Black; Kleur = Color.WhiteSmoke; Wiskleur = Color.PaleGoldenrod; // Grafísche instellingen: Tekengebied = new Rechthoek(); // Instellen van de guid. Een guid of uuid is een acroniem voor // 'Globally Unique ldentifier' (of 'Universally Unique ldentifier') // Het is een l2B-bits integer die gebruikt wordt om objecten te // identificeren: _id = Guid.NewGuid(); }
public Point Stap(Snelheid snelheidsObject) { this.SnelheidObject = snelheidsObject; // waar komt het object terecht bij de Stap? int berekendeX = Locatie.X + SnelheidObject.X; int berekendeY = Locatie.Y + SnelheidObject.Y; // bepalen van het nieuwe tekengebied waar het object getekend gaat worden Rechthoek nieuwTekenGebied = new Rechthoek(new Point(berekendeX, berekendeY), Tekengebied.Afmetingen); // Berekenen van een nieuwe richting nav een eventuele overschrijding van een grens Vlak vlak = Rechthoek.GrensBereikt(nieuwTekenGebied, GrafischVenster); // berekenen van een nieuwe ichting als het object een rand tegenekomt SnelheidObject = snelheidsObject.Stuiter(vlak); // opnieuw berekenen van de snelheid zodat een wijziging van de richting meegenomen wordt berekendeX = Locatie.X + SnelheidObject.X; berekendeY = Locatie.Y + SnelheidObject.Y; return(new Point(berekendeX, berekendeY)); }
// valt de meegegeven rechthoek helemaal binnen de afmetingen // van de huidige instantie van de rechthoek public bool Overlap(Rechthoek rechthoek) { return((rechthoek.D.X >= A.X && rechthoek.A.X <= D.X) && (rechthoek.D.Y >= A.Y && rechthoek.A.Y <= D.Y)); }
// raakt de meegegeven rechthoek de huidige instantie van Rechthoek? public Vlak GrensBereikt(Rechthoek r2) { // r1 is de huidige instantie van Rechthoek -> this return(GrensBereikt(this, r2)); }
public bool Overlap(Rechthoek r1) { return((r1.D.X >= A.X && r1.A.X <= D.X) && r1.D.Y >= A.Y && r1.A.Y <= D.Y); }