C++:
CS:
//Geometria.cpp
#include <iostream.h>
class Punkt2D {
public:
double x, y;
};
class Linia2D {
public:
Punkt2D p1, p2;
void skaluj(double d){
Punkt2D c;
c.x = (p1.x+p2.x)/2;
c.y = (p1.y+p2.y)/2;
p1.x = c.x+(p1.x-c.x)* d;
p1.y = c.y+(p1.y-c.y)* d;
p2.x = c.x+(p2.x-c.x)* d;
p2.y = c.y+(p2.y-c.y)* d;
}
void przesun(Punkt2D &p) {
p1.x += p.x; p1.y += p.y;
p2.x += p.x; p2.y += p.y;
}
int rownolegla(Linia2D &l){
double dx1 = l.p2.x- l.p1.x,
dy1 = l.p2.y- l.p1.y,
dx2 = p2.x-p1.x,
dy2 = p2.y-p1.y;
return abs(dx1*dyY2-dy1*dx2)<0.0001;
}
Linia2D lustroOX() {
Linia2D l;
l.p1.x = p1.x; l.p1.y = -p1.y;
l.p2.x = p2.x; l.p2.y = -p2.y;
return l;
}
};
int main() {
Linia2D l1, l2;
Punkt2D p1;
l1.p1.x = l2.p1.x = 0;
l1.p1.y = l2.p1.y = 0;
l1.p2.x = l2.p2.x = 1;
l1.p2.y = l2.p2.y = 1;
p1.x = 1; p1.y = 2;
l2.skaluj(2);
l2.przesun(p1);
cout << l1.rownolegla(l2);
l2 = l2.lustroOX();
return 0;
}
//Geometria.cs
using System;
class Punkt2D {
public double x, y;
}
class Linia2D {
public Punkt2D p1=new Punkt2D(),
p2=new Punkt2D();
public void Skaluj(double d) {
Punkt2D c = new Punkt2D();
c.x = (p1.x+p2.x)/2;
c.y = (p1.y+p2.y)/2;
p1.x = c.x+(p1.x-c.x)* d;
p1.y = c.y+(p1.y-c.y)* d;
p2.x = c.x+(p2.x-c.x)* d;
p2.y = c.y+(p2.y-c.y)* d;
}
public void Przesun(Punkt2D p) {
p1.x += p.x; p1.y += p.y;
p2.x += p.x; p2.y += p.y;
}
public bool Rownolegla(Linia2D l) {
double dx1 = l.p2.x- l.p1.x,
dy1 = l.p2.y- l.p1.y,
dx2 = p2.x-p1.x,
dy2 = p2.y-p1.y;
return Math.Abs(dx1*dy2-dy1*dx2)<0.0001?
true:false;
}
Linia2D LustroOX() {
Linia2D l = new Linia2D();
l.p1.x = p1.x; l.p1.y = -p1.y;
l.p2.x = p2.x; l.p2.y = -p2.y;
return l;
}
public static void Main(string[] args)
{
Linia2D l1 = new Linia2D(),
l2 = new Linia2D();
Punkt2D p1 = new Punkt2D();
l1.p1.x = l2.p1.x = 0;
l1.p1.y = l2.p1.y = 0;
l1.p2.x = l2.p2.x = 1;
l1.p2.y = l2.p2.y = 1;
p1.x = 1; p1.y = 2;
l2.Skaluj(2);
l2.Przesun(p1);
Console.WriteLine(l1.Rownolegla(l2));
l2 = l2.LustroOX();
}
}