public TAMStroke CreateRandomStroke(Vector2 center, TAMTone tone) { var size = (float)_random.Next(); var length = Mathf.Lerp(_generationConfiguration.StrokeLengthRange.x, _generationConfiguration.StrokeLengthRange.y, size); length += (float)_random.NextBetween(_generationConfiguration.StrokeHeightJitterRange.x, _generationConfiguration.StrokeLengthJitterRange.y); var height = Mathf.Lerp(_generationConfiguration.StrokeHeightRange.x, _generationConfiguration.StrokeHeightRange.y, size); height += (float)_random.NextBetween(_generationConfiguration.StrokeHeightJitterRange.x, _generationConfiguration.StrokeHeightJitterRange.y); float rotation; if (tone.StrokeOrientation == TAMStrokeOrientation.Horizontal) { rotation = (float)_random.NextBetween(-1, 1) * _generationConfiguration.MaxRotationJitter; } else if (tone.StrokeOrientation == TAMStrokeOrientation.Vertical) { // strokes vertical rotation = (float)_random.NextBetween(-1, 1) * _generationConfiguration.MaxRotationJitter + Mathf.PI / 2; } else { if (_random.NextBoolean()) { rotation = (float)_random.NextBetween(-1, 1) * _generationConfiguration.MaxRotationJitter; } else { rotation = (float)_random.NextBetween(-1, 1) * _generationConfiguration.MaxRotationJitter + Mathf.PI / 2; } } return(new TAMStroke(center, height, length, rotation, _lastId++)); }