public void GetSpiralPoints_MultiplePointsCreate_SpiralChangeOnCertainDirection(int countPoints, bool isClockwise) { var testSpiral = new ArchimedeanShape(center, (isClockwise ? 1 : -1) / (2 * Math.PI)); var spiralPoints = testSpiral.GetNextSpiralPoints(countPoints); for (var i = 1; i < spiralPoints.Count; i++) { var previousPoint = spiralPoints[i - 1]; var currentPoint = spiralPoints[i]; var pseudoscalarMultiply = (shape.Center.X - currentPoint.X) * (previousPoint.Y - currentPoint.Y) - (shape.Center.Y - currentPoint.Y) * (previousPoint.X - currentPoint.X); if (isClockwise) { pseudoscalarMultiply.Should().BeLessOrEqualTo(0); } else { pseudoscalarMultiply.Should().BeGreaterOrEqualTo(0); } } }
public void SetupSpiral() => shape = new ArchimedeanShape(center, 7 / (2 * Math.PI));