<ion-slides>
<ion-slide *ngFor="let img of images [options]="opts">
<img src="{{img}}.jpg">
</ion-slide>
</ion-slides>
КОМПОНЕНТ
@Component({
templateUrl: 'build/pages/test/test.html',
})
export class TestPage implements OnInit{
images= [1,2,3];
opts: any;
constructor() {}
ngOnInit() {
this.opts = {initialSlide: 5}
}
}
Вы забыли добавлять центральную точку:
result.Y = (int)Math.Round( centerPoint.Y + distance * Math.Sin( angle ) );
result.X = (int)Math.Round( centerPoint.X + distance * Math.Cos( angle ) );
Остальные должны быть в порядке... (какие странные результаты Вы получали? Можно ли дать точный вход?)
Во-первых, так как Вы находитесь в радианах, вероятно, выгодно определить Ваш угол как таковой:
double angle = (Math.PI / 3); // 60 degrees...
Сами функции хорошо работают. Округление будет только влиять на Ваш ответ, если Ваше расстояние будет достаточно достаточно мало. Кроме этого, ответы должны выйти очень хорошо.
Если это - округление, Вы волнуетесь по поводу, помните, что по умолчанию.NET делает округление банкира, и можно хотеть:
result.X = (int)Math.Round(centerPoint.X + distance * Math.Cos(angle), MidpointRounding.AwayFromZero);
result.Y = (int)Math.Round(centerPoint.Y + distance * Math.Sin(angle), MidpointRounding.AwayFromZero);
вместо этого.
Кроме того, в вопросе Вы хотите расстояние X и поворачиваете Y... Я предполагаю, что Вы не связываете это с точкой (X,Y)
, потому что это полностью отличается.
Формула расстояния:
double distance = Math.Sqrt((centerPoint.X + result.X)^2 + (centerPoint.Y + result.Y)^2);
Без большей информации о точных ошибках трудно сказать что случилось. Уравнения выглядят правильными и должны работать. Вы уверены углы, в которых Вы являетесь передающими, корректны для углов> 90 градусов? Единственная другая вещь, о которой я мог думать, будет состоять в том, что Вы умножаете расстояние (интервал) результатом Math.sin (дважды), но это не должно действительно быть проблемой.
Я не знаю c#, так или иначе при попытке потянуть точки где-нибудь, необходимо рассмотреть то, что складка оси Y от вершины до нижней части экрана, таким образом, элемент греха должен иметь быть - sin(...), и не +sin (...)
так
result.Y = centerPoint.Y + (int)Math.Round( distance * Math.Sin( angle ) );
должен стать:
result.Y = centerPoint.Y - (int)Math.Round( distance * Math.Sin( angle ) );
Если Вы не пытаетесь потянуть их, я не мог бы вообразить, какова проблема, можно ли дать некоторый пример?