c# Polygon 画多边形,
//随机多边形:
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 画多边形,的更多相关文章
- OpenLayers 根据坐标动态画多边形
找了一上午,发现都是鼠标点击画框的,那为什么不标明了是 “鼠标”点击 呢? 想实现的功能是数据库检索坐标集合,然后根据分组提取4点坐标,最后把多个多边形形成图层放在地图上. 最后的实现: <!D ...
- 最全vue的vue-amap使用高德地图插件画多边形范围
一.在vue-cli的框架下的main.js(或者main.ts)中引入高德插件,代码如下: import Vue from 'vue' import VueAMap from 'vue-amap' ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数012,polygon,多边形
<zw版·Halcon-delphi系列原创教程> Halcon分类函数012,polygon,多边形 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换 ...
- 使用Java、Matlab画多边形闭合折线图
由于写论文要将“哈密顿回路问题(TSP)”的求解中间结果表示出来,查了一下使用程序画多边形图形.现在在总结一下,这个图是“由给定节点首尾相连的”闭合多边形. 1.使用matlab作闭合多边形图 没有找 ...
- 【编程漫谈】用JAVA画多边形
一门语言只要带图形库就可以编程画图了,用JAVA画图有两种方式,一是在内存中画好然后生成图片,就可以看到画图的效果了.另一个就是在窗口界面上直接画,可以实时看到程序的运行效果.刚开始学编程的时候,我加 ...
- 【原创】pads layout 画多边形copper,出现Self-Intersecting Polygon,解决办法
在做线性位移传感器的电路板时,需要在一个很小的多边形Copper操作,总是提示“Self-Intersecting Polygon”报错,意思是outline线自身交叉,换句话说就是线宽与多边形尺寸没 ...
- [svg 翻译教程]Polyline(折线)polygon(多边形)
原文: http://tutorials.jenkov.com/svg/polygon-element.html Polyline 虽然说这个 元素我没用过,但是还是蛮强大的,也翻译下 示例 < ...
- [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 ...
- 一个给力的html5 画多边形的例子
只需改变参数就能画出你想要的多边形,代码简单!不得不惊叹canvas的强大! 代码奉上 <!doctype html> <html> <head> <meta ...
- qt 画多边形(实现鼠标拖动节点)
---恢复内容开始--- 2018-01-06 这个小例子实现了移动鼠标,鼠标的坐标信息跟随鼠标移动,多边形的实现,鼠标点击可以拖动多边形点的位置,(其中有个问题?我在QMainWindow下,用mo ...
随机推荐
- C++之OpenCV入门到提高001:使用 Visual Studio2022 配置 OpenCV 环境
一.介绍 从今天开始,我们又要开始一个新的系列了,这个系列就是<C++之 Opencv 入门到提高>.这个系列是有关如何使用 C++ 语言,通过 Opencv 来实现图像处理.缺陷检测.视 ...
- 从零开始学逆向CTF比赛,免费参加,欢迎来玩!
大家好,我是轩辕. 告诉大家一个好消息:我准备了一次逆向CTF比赛,面向所有人开放,无需购买课程,优秀的小伙伴还有奖励,参赛方式在文末会介绍,欢迎大家一起来玩. 举办这次CTF比赛,是为了检验大家从零 ...
- Windows Server 开启远程桌面
工作中不可避免地经常要用到WindowsServer,为了使用的方便,配置了远程桌面,这里记录一下远程桌面配置过程中遇到的一些问题以及解决方法. Windows Server2008 R2 x64 1 ...
- JS中如何获取当前日期,并与输入日期作比较
首先我们获取到"2020-5-5"类型的值 通过Date函数转换 var inputDate = new Date(Date.parse(realTimeEnd)); 获取当前时间 ...
- html中input标签放入小图标
直接上代码 <style type="text/css"> *{ margin: 0; padding: 0; } .box{ width: 200px; positi ...
- P10681 COTS/CETS 2024 奇偶矩阵 Tablica
P10681 COTS/CETS 2024 奇偶矩阵 Tablica 来自 qnqfff 大佬的梦幻 dp. 约定 二元组 \((n,m)\) 表示一个 \(n\) 行 \(m\) 列的矩形. 不添加 ...
- 国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 一、比对方法和结果
最近调研了三款国产化数据库与mysql做对比,调研主要性能指标是大数据写入速度.大数据读取速度以及是否支持分表. 一.测试结果 测试结果与预期的差别很大 1.先说oceanBase社区版这款数 ...
- TypeScript名词解释系列:tsconfg中的target,module和moduleResolution
tsconfg中的target,module和moduleResolution target 就是TypeScript文件编译后生成的javascript文件里的语法应该遵循哪个JavaScript的 ...
- vue遇到Conflicting order. Following module has been added:(加载顺序冲突)
其中article.vue和topGroup.vue这两个文件在模块unitTest和wrongBook上出现加载冲突 其中一个文件先加载topGroup.vue文件其中一个文件先加载article. ...
- bootstrap table 搜索只从当前页开始搜
项目中出现的情况,使用bootstrap table框架,使用搜索功能的是后查询的结果不是从第一也开始,有时候点击搜索第一次查不出来结果,点击第二次结果才出现. 解决方法: $("#btn_ ...