//随机多边形:
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;
namespace WpfMosaic
{
public class RandomShape:Grid
{
public RandomShape() {
Width = 100;
Height = 100;
//Background= new SolidColorBrush(Colors.Gray);
Polygon p = new Polygon();
p.Stroke = new SolidColorBrush(Colors.White);
p.StrokeThickness = 1;
p.Fill = new SolidColorBrush(Color.FromArgb(255, (byte)Utils.rnd.Next(0, 256), (byte)Utils.rnd.Next(0, 256), (byte)Utils.rnd.Next(0, 256)));
PointCollection ps = GetPoints(new Point(50,50),Utils.rnd.Next(10,50),Utils.rnd.Next(3,25));
p.Points = ps; Children.Add(p);
} /// <param name="pointCenter">中心坐标</param>
/// <param name="r">半径</param>
/// <param name="count">等分分数</param>
/// <returns></returns>
private PointCollection GetPoints(Point pointCenter, int r, int count)
{
Point[] point = new Point[count];
PointCollection pointCollection = new PointCollection();
for (int i = 0; i < count; i++)
{
point[i].X = (int)(r * Math.Cos((i + 1) * 360 / count * Math.PI / 180)) + pointCenter.X;
point[i].Y = (int)(r * Math.Sin((i + 1) * 360 / count * Math.PI / 180)) + pointCenter.Y;
pointCollection.Add(point[i]);
} return pointCollection;
} }
}

  

钻石图形:

  <Canvas>
<Polygon HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Fill"
Points="0,50, 50,0, 100,50"
Stroke="White" StrokeThickness="1" RenderTransformOrigin="0.5,0.5" Canvas.Left="9">
<Polygon.Fill>
<SolidColorBrush x:Name="Color1" Color="Gray" Opacity="0.4"/>
</Polygon.Fill>
</Polygon> <Polygon HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Fill"
Points="0,50, 50,0, 100,50"
Stroke="White" StrokeThickness="1" RenderTransformOrigin="0.5,0.5" Canvas.Left="60">
<Polygon.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="180"/>
<TranslateTransform/>
</TransformGroup>
</Polygon.RenderTransform>
<Polygon.Fill>
<SolidColorBrush x:Name="Color2" Color="Red" Opacity="0.4"/>
</Polygon.Fill>
</Polygon>
<Polygon HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Fill"
Points="0,50, 50,0, 100,50"
Stroke="White" StrokeThickness="1" RenderTransformOrigin="0.5,0.5" Canvas.Left="110">
<Polygon.Fill>
<SolidColorBrush x:Name="Color3" Color="Gray" Opacity="0.4"/>
</Polygon.Fill>
</Polygon> <Polygon HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Fill"
Points="0,0, 50,0, 100,120"
Stroke="White" StrokeThickness="1" RenderTransformOrigin="0.5,0.5" Canvas.Left="9" Canvas.Top="51">
<Polygon.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</Polygon.RenderTransform>
<Polygon.Fill>
<SolidColorBrush x:Name="Color4" Color="Gray" Opacity="0.4"/>
</Polygon.Fill>
</Polygon>
<Polygon HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Fill"
Points="0,0, 50,0, 100,120"
Stroke="White" StrokeThickness="1" RenderTransformOrigin="0.5,0.5" Canvas.Left="110" Canvas.Top="51">
<Polygon.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="-1"/>
<SkewTransform/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</Polygon.RenderTransform>
<Polygon.Fill>
<SolidColorBrush x:Name="Color5" Color="Gray" Opacity="0.4"/>
</Polygon.Fill>
</Polygon>
<Polygon HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Fill"
Points="0,0, 100,0, 50,120"
Stroke="White" StrokeThickness="1" RenderTransformOrigin="0.5,0.5" Canvas.Left="59" Canvas.Top="51"> <Polygon.Fill>
<SolidColorBrush x:Name="Color6" Color="Blue" Opacity="0.4"/>
</Polygon.Fill>
</Polygon> </Canvas>

  

c# Polygon 画多边形,的更多相关文章

  1. OpenLayers 根据坐标动态画多边形

    找了一上午,发现都是鼠标点击画框的,那为什么不标明了是 “鼠标”点击 呢? 想实现的功能是数据库检索坐标集合,然后根据分组提取4点坐标,最后把多个多边形形成图层放在地图上. 最后的实现: <!D ...

  2. 最全vue的vue-amap使用高德地图插件画多边形范围

    一.在vue-cli的框架下的main.js(或者main.ts)中引入高德插件,代码如下: import Vue from 'vue' import VueAMap from 'vue-amap' ...

  3. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数012,polygon,多边形

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数012,polygon,多边形 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换 ...

  4. 使用Java、Matlab画多边形闭合折线图

    由于写论文要将“哈密顿回路问题(TSP)”的求解中间结果表示出来,查了一下使用程序画多边形图形.现在在总结一下,这个图是“由给定节点首尾相连的”闭合多边形. 1.使用matlab作闭合多边形图 没有找 ...

  5. 【编程漫谈】用JAVA画多边形

    一门语言只要带图形库就可以编程画图了,用JAVA画图有两种方式,一是在内存中画好然后生成图片,就可以看到画图的效果了.另一个就是在窗口界面上直接画,可以实时看到程序的运行效果.刚开始学编程的时候,我加 ...

  6. 【原创】pads layout 画多边形copper,出现Self-Intersecting Polygon,解决办法

    在做线性位移传感器的电路板时,需要在一个很小的多边形Copper操作,总是提示“Self-Intersecting Polygon”报错,意思是outline线自身交叉,换句话说就是线宽与多边形尺寸没 ...

  7. [svg 翻译教程]Polyline(折线)polygon(多边形)

    原文: http://tutorials.jenkov.com/svg/polygon-element.html Polyline 虽然说这个 元素我没用过,但是还是蛮强大的,也翻译下 示例 < ...

  8. [javascript svg fill stroke stroke-width points polygon属性讲解] svg fill stroke stroke-width points polygon绘制多边形属性并且演示polyline和polygon区别讲解

    <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...

  9. 一个给力的html5 画多边形的例子

    只需改变参数就能画出你想要的多边形,代码简单!不得不惊叹canvas的强大! 代码奉上 <!doctype html> <html> <head> <meta ...

  10. qt 画多边形(实现鼠标拖动节点)

    ---恢复内容开始--- 2018-01-06 这个小例子实现了移动鼠标,鼠标的坐标信息跟随鼠标移动,多边形的实现,鼠标点击可以拖动多边形点的位置,(其中有个问题?我在QMainWindow下,用mo ...

随机推荐

  1. UE4纯C++实现游戏快捷栏

    要想创建一个游戏中的快捷栏我们往往通过以下几步来实现(目录导航): 1.创建UI:我们首先需要有在游戏视口中添加一个快捷栏UI界面,以供玩家看到自身的快捷栏. 2.物品读取:其次有了界面之后我们需要往 ...

  2. 使用ssh 通过ProxyCommand:利用跳板机让不在同一局域网的机器ssh直连

    打开~/.ssh/config文件,如果没有则新建一个 输入以下内容并保存: Host dxx.sxx-bastion # jumpserver name hostname 54.65.xx.2xx ...

  3. KVM的基本使用

    1. 虚拟化介绍 虚拟化是云计算的基础.简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU.内存.IO 硬件资源,但逻辑上虚拟机之间是相互隔离的. 物理机我们一般称为 ...

  4. 总结:OI题目中常见的三种距离

    设 \(A(x_1, y_1), B(x_2, y_2)\). 欧几里得距离 \[|AB| = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} \] 一般模型:在一个坐标系上 ...

  5. javascript正则获取a标签的href

    js正则获取a标签的href let str = '<a href="https://www.test.com" >test</a>' let reg = ...

  6. ABP-VNext 用户权限管理系统实战06---多租户集成

    一.集成 1.引用安装包 Volo.Abp.AspNetCore.MultiTenancy 2.配置租户key Configure<AbpAspNetCoreMultiTenancyOption ...

  7. 使用JAVA建立稳定的多线程服务器

    侯光敏 (wearebug@etang.com), 简介: 本文详细的介绍了使用Java语言建立一套多线程服务器的过程,该服务器使用对象传递消息,在线程中使用队列机制,使服务器的性能大大提高了.这套服 ...

  8. 三、FreeRTOS学习笔记-系统配置

    FreeRTOSConfig.h配置文件作用:对FreeRTOS进行功能配置和裁剪,以及API函数的使能. 系统配置文件中主要是一些宏定义 相关宏定义可分为三类: 1."INCLUDE&qu ...

  9. PHP中的特殊用法

    开发中查阅别人代码的时候, 总能发现新大陆, 各种骚操作与奇技淫巧, 有些还是值得借鉴的,自然要学习一番啦 1.fastcgi_finish_request 此函数冲刷(flush)所有响应的数据给客 ...

  10. Centos7 安装python3与python2.7 共存

    前言 在centos7服务器上,linux系统默认安装有python2.7,这是系统服务等会依赖到的,所以系统的python2.7是不可以卸载的,避免系统出现问题.那么问题就来了,我们现在使用的pyt ...