Repository navigation
Expand file tree
/
Copy pathRettLinje.java
More file actions
141 lines (111 loc) · 3.25 KB
/
Copy pathRettLinje.java
File metadata and controls
141 lines (111 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package com.example.tegneprogram;
import javafx.scene.paint.Color;
import javafx.scene.shape.Line;
public class RettLinje extends Line implements Figur {
final private static String NAVN = "Rett linje";
//konstruktør
public RettLinje(double startX, double startY, double sluttX, double sluttY) {
super(startX, startY, sluttX, sluttY);
setStrokeWidth(5);
}
//setter og getter metoder
@Override
public double getX() {
return getStartX();
}
@Override
public double getY() {
return getStartY();
}
@Override
public String getNavn() {
return NAVN;
}
public double getSluttX() {
return getEndX();
}
public double getSluttY() {
return getEndY();
}
@Override
public void setX(double x) {
setStartX(x);
}
@Override
public void setY(double y) {
setStartY(y);
}
public void setSluttX(double x) {
setEndX(x);
}
public void setSluttY(double y) {
setEndY(y);
}
//metode for fylling av farge
@Override
public void fyllFarge(Color farge) {
setStroke(farge);
}
//Metode som returnerer farge
@Override
public Color getFyll() {
Color farge = (Color) getStroke();
return farge;
}
@Override
public String getTekst() {
return "";
}
@Override
public void setTekst(String tekst) {
}
@Override
public void endreStørrelse(double x, double y) {
setEndX(x);
setEndY(y);
}
@Override
public void flytt(double x, double y) {
// Hent nåværende start- og sluttkoordinater for linjen
double startX = getStartX();
double startY = getStartY();
double sluttX = getSluttX();
double sluttY = getSluttY();
// Beregn linjens opprinnelige vinkel og lengde
double deltaX = sluttX - startX;
double deltaY = sluttY - startY;
double vinkel = Math.atan2(deltaY, deltaX); // Vinkel i radianer
double lengde = linjeLengde();
// Oppdater startposisjonen til museposisjonen
setStartX(x);
setStartY(y);
// Beregn de nye sluttkoordinatene basert på vinkel og lengde
double nySluttX = x + lengde * Math.cos(vinkel);
double nySluttY = y + lengde * Math.sin(vinkel);
// Oppdater sluttposisjonen for å opprettholde vinkelen og lengden
setSluttX(nySluttX);
setSluttY(nySluttY);
}
@Override
public void fyllStrek(Color farge) {
setStroke(farge);
}
//arealet av en linje er alltid null
@Override
public double areal() {
return 0;
}
@Override
public double linjeLengde() {
double x = getStartX();
double y = getStartY();
double x1 = getSluttX();
double y1 = getEndY();
// Beregner katetene som avstanden mellom senteret og museposisjonen
double k1 = Math.abs(x1 - x);
double k2 = Math.abs(y1 - y);
//beregner distanse (hypotenusen)
double distanse = Math.sqrt((k1*k1) + (k2*k2));
return distanse;
}
}