|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.12.2015, 15:25 | #1 |
Новичок
Джуниор
Регистрация: 13.12.2015
Сообщений: 1
|
Как изменть данный код под кардиоиду? WPF C#
Имея данный код полярной розы, хотелось бы изменить его под кардиоиду. Я в математике не очень. Но очень хотелось бы получить помощь. Главное написано в DataFill и в PolarFun.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Globalization; namespace WpfApplication1 { /// <summary> /// Логика взаимодействия для MainWindow.xaml /// </summary> public partial class MainWindow : Window { const int countDot = 1000; Point[] points = new Point[countDot+1]; DrawingGroup drawingGroup = new DrawingGroup(); public MainWindow() { InitializeComponent(); DataFill();//Заполнение списка данными Execute();//Заполнение слоев //Отображение на экране image.Source = new DrawingImage(drawingGroup); } //Генерация точек графиков void DataFill() { for (int i = 0; i < points.Length; i++) { double angle = 2 * Math.PI / countDot * i; points[i].X = Math.Sin(87 * angle) * Math.Cos(angle) / 2; points[i].Y = Math.Sin(87 * angle) * Math.Sin(angle) / 2; } } private void BackgroundFun() { //Создаем объект для описания геометрической фигуры GeometryDrawing geometryDrawing = new GeometryDrawing(); //Описываем и сохраняем геометрию квадрата RectangleGeometry rectGeometry = new RectangleGeometry(); rectGeometry.Rect = new Rect(-1, 0, 2, 1); geometryDrawing.Geometry = rectGeometry; //Настраиваем перо и кисть geometryDrawing.Pen = new Pen(Brushes.Red, 0.005);// Перо рамки geometryDrawing.Brush = Brushes.Beige;//Кисть закраски //Добавляем готовый слой в контейнер отображения drawingGroup.Children.Add(geometryD rawing); } private void GridFun() { GeometryGroup geometryGroup = new GeometryGroup(); for (int i = 1; i < 10; i++) { LineGeometry line = new LineGeometry(new Point(1.0, i * 0.1), new Point(-0.1, i * 0.1)); geometryGroup.Children.Add(line); LineGeometry line1 = new LineGeometry(new Point(0, i * 0.1), new Point(-1.1, 0.1 * i)); geometryGroup.Children.Add(line1); } GeometryDrawing geometryDrawing = new GeometryDrawing(); geometryDrawing.Geometry = geometryGroup; geometryDrawing.Pen = new Pen(Brushes.Gray, 0.003); double[] dashes = { 1, 1, 1, 1, 1 }; geometryDrawing.Pen.DashStyle = new DashStyle(dashes, -.1); geometryDrawing.Brush = Brushes.Beige; drawingGroup.Children.Add(geometryD rawing); } private void PolarFun() { GeometryGroup geometryGroup = new GeometryGroup(); for (int i = 0; i < points.Length - 1; i++) { LineGeometry line = new LineGeometry(new Point(points[i].X, 0.5 - points[i].Y), new Point(points[i + 1].X, 0.5 - points[i + 1].Y)); LineGeometry line1 = new LineGeometry(points[i], points[i + 1]); geometryGroup.Children.Add(line); } GeometryDrawing geometryDrawing = new GeometryDrawing(); geometryDrawing.Geometry = geometryGroup; geometryDrawing.Pen = new Pen(Brushes.Blue, 0.005); drawingGroup.Children.Add(geometryD rawing); } private void MarkerFun() { GeometryGroup geometryGroup = new GeometryGroup(); for (int i = 0; i <= 10; i++) { FormattedText formattedText = new FormattedText( String.Format("{0,7:F}", 1 - i * 0.2), CultureInfo.InvariantCulture, FlowDirection.LeftToRight, new Typeface("Verdana"), 0.05, Brushes.Black); formattedText.SetFontWeight(FontWei ghts.Bold); Geometry geometry = formattedText.BuildGeometry(new Point(-1.2, i * 0.1 - 0.03)); geometryGroup.Children.Add(geometry ); /*FormattedText formattedText1 = new FormattedText(String.Format("{0,7:F }", 1 - i * 0.2), CultureInfo.InvariantCulture, FlowDirection.LeftToRight, new Typeface("Verdana"), 0.05, Brushes.Black); formattedText.SetFontWeight(FontWei ghts.Bold); Geometry geometry1 = formattedText.BuildGeometry(new Point(1.2, -i * 0.1 - 0.03)); geometryGroup.Children.Add(geometry 1);*/ } GeometryDrawing geometryDrawing = new GeometryDrawing(); geometryDrawing.Geometry = geometryGroup; geometryDrawing.Brush = Brushes.LightGray; geometryDrawing.Pen = new Pen(Brushes.Gray, 0.003); drawingGroup.Children.Add(geometryD rawing); } void Execute() { BackgroundFun(); GridFun(); PolarFun(); MarkerFun(); } } } |
13.12.2015, 22:19 | #2 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Во-первых код нужно выделять тегами . В редакторе есть для этого соответствующая кнопка.
КнопкаКод.PNG Я не говорю уже про форматирование. Не обижайтесь, но в том виде в котором код представлен на данный момент его прочитать почти не возможно. По теме. Цитата:
Были какие-то попытки самостоятельно переписать построение графика? |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как понять данный код? | SkyWay | Microsoft Office Excel | 1 | 12.02.2015 02:36 |
Как записать в виде функции данный код программы в С++ | Muaitai | Помощь студентам | 0 | 07.01.2012 01:48 |
Как записать в виде функции данный код программы в С++ | Muaitai | Visual C++ | 2 | 06.01.2012 13:42 |
как правильно разбить данный код на 3 класса? | neomax38 | Общие вопросы по Java, Java SE, Kotlin | 1 | 25.11.2011 22:17 |
как отсортировать массив под данный отрезок и как минимум и максимум из него найти | SIEGER | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 20.11.2008 08:58 |