Fix curveInDirection
This commit is contained in:
parent
3e31effa80
commit
c8c6aef24e
@ -10,7 +10,7 @@ val ktorVersion by extra("2.0.3")
|
||||
|
||||
allprojects {
|
||||
group = "center.sciprog"
|
||||
version = "0.1.0-dev-9"
|
||||
version = "0.1.0-dev-10"
|
||||
}
|
||||
|
||||
ksciencePublish{
|
||||
|
@ -1,10 +1,11 @@
|
||||
package center.sciprog.maps.compose
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.ImageBitmap
|
||||
import androidx.compose.ui.graphics.PointMode
|
||||
import androidx.compose.ui.geometry.Rect
|
||||
import androidx.compose.ui.graphics.*
|
||||
import androidx.compose.ui.graphics.drawscope.DrawScope
|
||||
import androidx.compose.ui.graphics.drawscope.DrawStyle
|
||||
import androidx.compose.ui.graphics.drawscope.Fill
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.VectorPainter
|
||||
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
||||
@ -57,20 +58,20 @@ public class MapDrawFeature(
|
||||
MapDrawFeature(newCoordinates, zoomRange, drawFeature)
|
||||
}
|
||||
|
||||
//public class MapPathFeature(
|
||||
// public val rectangle: GmcRectangle,
|
||||
// public val path: Path,
|
||||
// public val brush: Brush,
|
||||
// public val style: DrawStyle = Fill,
|
||||
// public val targetRect: Rect = path.getBounds(),
|
||||
// override val zoomRange: IntRange = defaultZoomRange,
|
||||
//) : DraggableMapFeature {
|
||||
// override fun withCoordinates(newCoordinates: GeodeticMapCoordinates): MapFeature =
|
||||
// MapPathFeature(rectangle.moveTo(newCoordinates), path, brush, style, targetRect, zoomRange)
|
||||
//
|
||||
// override fun getBoundingBox(zoom: Double): GmcRectangle = rectangle
|
||||
//
|
||||
//}
|
||||
public class MapPathFeature(
|
||||
public val rectangle: GmcRectangle,
|
||||
public val path: Path,
|
||||
public val brush: Brush,
|
||||
public val style: DrawStyle = Fill,
|
||||
public val targetRect: Rect = path.getBounds(),
|
||||
override val zoomRange: IntRange = defaultZoomRange,
|
||||
) : DraggableMapFeature {
|
||||
override fun withCoordinates(newCoordinates: GeodeticMapCoordinates): MapFeature =
|
||||
MapPathFeature(rectangle.moveTo(newCoordinates), path, brush, style, targetRect, zoomRange)
|
||||
|
||||
override fun getBoundingBox(zoom: Double): GmcRectangle = rectangle
|
||||
|
||||
}
|
||||
|
||||
public class MapPointsFeature(
|
||||
public val points: List<GeodeticMapCoordinates>,
|
||||
|
@ -303,13 +303,14 @@ public actual fun MapView(
|
||||
}
|
||||
}
|
||||
|
||||
// is MapPathFeature -> {
|
||||
is MapPathFeature -> {
|
||||
TODO("MapPathFeature not implemented")
|
||||
// val offset = feature.rectangle.center.toOffset() - feature.targetRect.center
|
||||
// translate(offset.x, offset.y) {
|
||||
// sca
|
||||
// drawPath(feature.path, brush = feature.brush, style = feature.style)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
is MapPointsFeature -> {
|
||||
val points = feature.points.map { it.toOffset() }
|
||||
|
@ -190,7 +190,7 @@ public fun GeoEllipsoid.curveInDirection(
|
||||
val L = lambda - (1 - C) * f * sinAlpha *
|
||||
(sigma.value + C * sinSigma * (cosSigmaM2 + C * cosSigma * (-1 + 2 * cos2SigmaM2)))
|
||||
|
||||
val endPoint = Gmc(phi2, L.radians)
|
||||
val endPoint = Gmc(phi2, start.longitude + L.radians)
|
||||
|
||||
// eq. 12
|
||||
|
||||
|
@ -30,5 +30,6 @@ internal class DistanceTest {
|
||||
)
|
||||
|
||||
assertEquals(spb.latitude.radians.value,curve.backward.latitude.radians.value, 0.0001)
|
||||
assertEquals(spb.longitude.radians.value,curve.backward.longitude.radians.value, 0.0001)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user