Skip to content

Commit fdd347a

Browse files
committed
huge fix
1 parent 87cdbb0 commit fdd347a

File tree

6 files changed

+37
-13
lines changed

6 files changed

+37
-13
lines changed

App/src/finder/LineFinder.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import java.awt.image.BufferedImage
1010
* Created by ice1000 on 16-8-6.
1111
*/
1212
open class LineFinder(image: BufferedImage): Area(image), Finder {
13-
var pointCache = Point(0, 0)
13+
protected var pointCache = Point(1, 2)
1414

1515
/**
1616
* @param point send a clicked point

App/src/finder/TriangleFinder.kt

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
package finder
22

3+
import core.models.Line
34
import core.models.Point
45
import java.awt.image.BufferedImage
56

67
/**
78
* @author ice1000
89
* Created by ice1000 on 2016/8/10.
910
*/
10-
open class TriangleFinder(image: BufferedImage): LineFinder(image){
11+
open class TriangleFinder(image: BufferedImage) : LineFinder(image) {
12+
protected var pointCache1 = Point(2, 1)
13+
1114
override fun send(point: Point): Boolean {
12-
// TODO triangle fucking
13-
return super.send(point)
15+
val ret = point connect pointCache1 && pointCache1 connect pointCache && point connect pointCache
16+
drawLine(Line(pointCache1, pointCache))
17+
drawLine(Line(point, pointCache))
18+
drawLine(Line(point, pointCache1))
19+
pointCache = pointCache1
20+
pointCache1 = point
21+
return ret
1422
}
1523
}
File renamed without changes.

App/src/runnable/TriangleFind.kt

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package runnable
2+
3+
import finder.TriangleFinder
4+
import view.GUI
5+
import java.io.File
6+
import javax.imageio.ImageIO
7+
8+
/**
9+
* @author ice1000
10+
* Created by ice1000 on 2016/8/11.
11+
*/
12+
13+
fun main(args: Array<String>) {
14+
GUI("Line by ice1000", TriangleFinder(ImageIO.read(File("test.png"))))
15+
}

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ Module|Language
2020
:---|---:
2121
Tests|Java
2222
Documents|Java
23-
Core (major)|Kotlin
23+
Core|Kotlin
24+
GUI|Kotlin
2425
DSL|Groovy
2526

2627
# Progress

src/core/models/Line.kt

+8-8
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,20 @@ import java.util.*
88
*
99
* 通过两点构造一条直线
1010
*/
11-
open class Line(start: Point, end: Point) {
11+
open class Line(one: Point, two: Point) {
1212

13-
private val a = end.y - start.y
14-
private val b = start.x - end.x
15-
private val c = end.x * start.y - start.x * end.y
13+
private val a = two.y - one.y
14+
private val b = one.x - two.x
15+
private val c = two.x * one.y - one.x * two.y
1616
val allPoints = HashSet<Point>()
1717

1818
init {
19-
(Math.min(start.x, end.x)..Math.max(start.x, end.x)).forEach { x -> allPoints.add(Point(x, x2y(x))) }
20-
(Math.min(start.y, end.y)..Math.max(start.y, end.y)).forEach { y -> allPoints.add(Point(y2x(y), y)) }
19+
(Math.min(one.x, two.x)..Math.max(one.x, two.x)).forEach { x -> if (b > 0) allPoints.add(Point(x, x2y(x))) }
20+
(Math.min(one.y, two.y)..Math.max(one.y, two.y)).forEach { y -> if (a > 0) allPoints.add(Point(y2x(y), y)) }
2121
}
2222

23-
fun x2y(x: Int) = (a * x + c) * -1 / b
24-
fun y2x(y: Int) = (b * y + c) * -1 / a
23+
fun x2y(x: Int) = -(a * x + c) / b
24+
fun y2x(y: Int) = -(b * y + c) / a
2525

2626
override operator fun equals(other: Any?): Boolean {
2727
if (other == null || other !is Line) return false

0 commit comments

Comments
 (0)