[转] ArcEngine 产生专题图

小生原文 ArcEngine 产生专题图

ArcEngine提供多个着色对象用于产生专题图,可以使用标准着色方案,也可以自定义着色方案,ArcEngine提供8中标准着色方案。

一、SimpleRenderer专题图

是使用单一符号进行着色分类,不涉及对要素的数据进行处理。这种专题图同一个图层内的所有元素都是一种符号。

通过SimpleRenderer对象对Symbol进行设置后,赋予IGeoFeatureLayer接口的Renderer属性,对象实现了ITransparencyRenerer接口,通过该接口的属性,可以根据要素的某一个数值字段来设置要素显示的透明度。

该对象还实现了ISimpleRenderer接口,提供了两个重要的属性:Description和Label这两个属性用来设置图例。

/// <summary>/// 简单渲染/// </summary>/// <param name="layerName">图层名字</param>/// <param name="FillStyle">FillStyle</param>/// <param name="pColor">FillColor</param>/// <param name="OutLineColor">OutLineColor</param>/// <param name="RenderLabel">样式名称注释</param>/// <param name="Descripition">描述</param>public void createSimpleFillSymbol(string layerName,esriSimpleFillStyle FillStyle,IColor pColor,IColor OutLineColor,string RenderLabel,string Descripition){//简单填充符号ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbolClass();//可以用符号选择器进行simpleFillSymbol.Style = FillStyle;simpleFillSymbol.Color = pColor;//创建边线符号ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbolClass();simpleLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid;simpleLineSymbol.Color = OutLineColor;ISymbol symbol = simpleLineSymbol as ISymbol;symbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;simpleFillSymbol.Outline = simpleLineSymbol;ISimpleRenderer simpleRender = new SimpleRendererClass();simpleRender.Symbol = simpleFillSymbol as ISymbol;simpleRender.Label = RenderLabel;simpleRender.Description = Descripition;IGeoFeatureLayer geoFeatureLayer;geoFeatureLayer = getGeoLayer(layerName);if (geoFeatureLayer != null){geoFeatureLayer.Renderer = simpleRender as IFeatureRenderer;}}

 

二、ClassBreakRenderer专题图

为分级专题图,通过要素图层中要素的某个数值字段的值,根据用户要求,将这些值分为多个级别,每个级别用不同的Symbol显示。

该对象实现了IClassBreakRenderer接口,提供了实现分级显示的属性和方法,如Field属性用于设置分级着色的字段,BreakCount属性用于设置分级的数目。

/// <summary>/// 分级渲染/// </summary>/// <param name="layerName">图层名</param>/// <param name="classCount">分级数目</param>/// <param name="ClassField">分级字段</param>/// <param name="FillStyle">填充样式</param>public void createClassBreakRender(string layerName, int classCount, string ClassField, esriSimpleFillStyle FillStyle){//int classCount = 6;ITableHistogram tableHistogram;//表格直方图IBasicHistogram basicHistogram;//Provides access to members that control histogram objects created from different data sources. ITable table;IGeoFeatureLayer geoFeatureLayer;geoFeatureLayer = getGeoLayer(layerName);ILayer layer = geoFeatureLayer as ILayer;table = layer as ITable;tableHistogram = new BasicTableHistogramClass();//按照 数值字段分级tableHistogram.Table = table;tableHistogram.Field = ClassField;basicHistogram = tableHistogram as IBasicHistogram;object values;object frequencys;//先统计每个值和各个值出现的次数basicHistogram.GetHistogram(out values, out frequencys);//创建平均分级对象IClassifyGEN classifyGEN = new QuantileClass();//用统计结果进行分级 ,级别数目为classCountclassifyGEN.Classify(values, frequencys, ref classCount);//获得分级结果,是个 双精度类型数组 double[] classes;classes = classifyGEN.ClassBreaks as double[];//定义不同等级渲染的色带用色IEnumColors enumColors = CreateAlgorithmicColorRamp(classes.Length).Colors;IColor color;IClassBreaksRenderer classBreaksRenderer = new ClassBreaksRendererClass();classBreaksRenderer.Field = ClassField;classBreaksRenderer.BreakCount = classCount;//分级数目classBreaksRenderer.SortClassesAscending = true;//定义分类是否在TOC中显示LegendISimpleFillSymbol simpleFillSymbol;for (int i = 0; i < classes.Length - 1; i++){color = enumColors.Next();simpleFillSymbol = new SimpleFillSymbolClass();simpleFillSymbol.Color = color;simpleFillSymbol.Style = FillStyle;classBreaksRenderer.set_Symbol(i, simpleFillSymbol as ISymbol);classBreaksRenderer.set_Break(i, classes[i]);}if (geoFeatureLayer != null){geoFeatureLayer.Renderer = classBreaksRenderer as IFeatureRenderer;}}

 

三、UniqueValueRenderer专题图

是依据要素图层中的某个字段的不同值,给每个要素一个单独的颜色,以区分存在的每一个要素。

UniqueValueRenderer实现了IUniqueValueRenderer接口,提供了各种属性和方法,如AddValue方法用于将单个要素的某个字段值和与之相匹配的着色符号加入到UniqueValueRenderer对象。

 

/// <summary>/// 单一值渲染(单字段)/// </summary>/// <param name="layerName">图层名</param>/// <param name="RenderField">渲染字段</param>/// <param name="FillStyle">填充样式</param>/// <param name="valueCount">字段的唯一值个数</param>public void createUniqueValueRander(string layerName, string RenderField, esriSimpleFillStyle FillStyle,int valueCount){IGeoFeatureLayer geoFeatureLayer;geoFeatureLayer = getGeoLayer(layerName);IUniqueValueRenderer uniqueValueRenderer = new UniqueValueRendererClass();//可以设置多个字段uniqueValueRenderer.FieldCount = 1;//0-3个uniqueValueRenderer.set_Field(0, RenderField);//简单填充符号ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbolClass();simpleFillSymbol.Style = FillStyle;IFeatureCursor featureCursor = geoFeatureLayer.FeatureClass.Search(null, false);IFeature feature;if (featureCursor != null){IEnumColors enumColors = CreateAlgorithmicColorRamp(valueCount).Colors;int fieldIndex = geoFeatureLayer.FeatureClass.Fields.FindField(RenderField);for (int i = 0; i < valueCount; i++){feature = featureCursor.NextFeature();string nameValue = feature.get_Value(fieldIndex).ToString();simpleFillSymbol = new SimpleFillSymbolClass();simpleFillSymbol.Color = enumColors.Next();uniqueValueRenderer.AddValue(nameValue, RenderField, simpleFillSymbol as ISymbol);}}geoFeatureLayer.Renderer = uniqueValueRenderer as IFeatureRenderer;}/// <summary>///  单一值渲染(多字段)/// </summary>/// <param name="layerName">图层名</param>/// <param name="RenderField">多字段名</param>/// <param name="FillStyle">样式</param>/// <param name="valueCount">每个字段中唯一值的个数</param>public void createUniqueValueRander(string layerName, string[] RenderField, esriSimpleFillStyle FillStyle, int[] valueCount){IGeoFeatureLayer geoFeatureLayer;geoFeatureLayer = getGeoLayer(layerName);IUniqueValueRenderer uniqueValueRenderer = new UniqueValueRendererClass();//可以设置多个字段uniqueValueRenderer.FieldCount = RenderField .Length;//0-3个for (int i = 0; i < RenderField.Length; i++){uniqueValueRenderer.set_Field(i, RenderField[i]);}//简单填充符号ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbolClass();simpleFillSymbol.Style = FillStyle;IFeatureCursor featureCursor = geoFeatureLayer.FeatureClass.Search(null, false);IFeature feature;if (featureCursor != null){for (int i = 0; i < RenderField.Length; i++){IEnumColors enumColors = CreateAlgorithmicColorRamp(valueCount[i]).Colors;int fieldIndex = geoFeatureLayer.FeatureClass.Fields.FindField(RenderField[i]);for (int j = 0; j < valueCount[i]; j++){feature = featureCursor.NextFeature();string nameValue = feature.get_Value(fieldIndex).ToString();simpleFillSymbol = new SimpleFillSymbolClass();simpleFillSymbol.Color = enumColors.Next();uniqueValueRenderer.AddValue(nameValue, RenderField[i], simpleFillSymbol as ISymbol);}}}geoFeatureLayer.Renderer = uniqueValueRenderer as IFeatureRenderer;}

 

四、ProportionalSymbolRenderer专题图

使用梯度着色法制作的专题图。

ProportionalSymbolRenderer实现了IProportionalSymbolRenderer接口。

这种着色法需要用户知道最大和最小点各自代表的字段值、着色基于的字段和着色点使用的符号以及它在Legend要出现的级别数目。

 

/// <summary>/// 梯度着色/// </summary>/// <param name="layerName">图层名字</param>/// <param name="ProportionField">要参考的字段</param>/// <param name="FillStyle">填充样式</param>/// <param name="fillColor">填充Color</param>/// <param name="characterMarkerSymbol">特征点符号</param>/// <param name="units">参考单位</param>/// <param name="pLegendSymbolCount">要分成的级数</param>public void createProportionSymbolRender(string layerName, string ProportionField, esriSimpleFillStyle FillStyle, IColor fillColor, ICharacterMarkerSymbol characterMarkerSymbol, esriUnits units, int pLegendSymbolCount){IGeoFeatureLayer geoFeatureLayer;IFeatureLayer featureLayer;IProportionalSymbolRenderer proportionalSymbolRenderer;ITable table;ICursor cursor;IDataStatistics dataStatistics;//用一个字段生成统计数据IStatisticsResults statisticsResult;//报告统计数据//stdole.IFontDisp fontDisp;//定义字体
geoFeatureLayer = getGeoLayer(layerName);featureLayer = geoFeatureLayer as IFeatureLayer;table = geoFeatureLayer as ITable;cursor = table.Search(null, true);dataStatistics = new DataStatisticsClass();dataStatistics.Cursor = cursor;dataStatistics.Field = ProportionField;//确定分级字段statisticsResult = dataStatistics.Statistics;if (statisticsResult != null){IFillSymbol fillSymbol = new SimpleFillSymbolClass();fillSymbol.Color = fillColor;//ICharacterMarkerSymbol characterMarkerSymbol = new CharacterMarkerSymbolClass();//fontDisp = new stdole.StdFontClass() as stdole.IFontDisp;//fontDisp.Name = "arial";//fontDisp.Size = 20;//characterMarkerSymbol.Font = fontDisp;//characterMarkerSymbol.CharacterIndex = 90;//characterMarkerSymbol.Color = getRGB(255, 0, 0);//characterMarkerSymbol.Size = 8;proportionalSymbolRenderer = new ProportionalSymbolRendererClass();proportionalSymbolRenderer.ValueUnit = units;proportionalSymbolRenderer.Field = ProportionField ;proportionalSymbolRenderer.FlanneryCompensation = false;//分级是不是在TOC中显示legendproportionalSymbolRenderer.MinDataValue = statisticsResult.Minimum;proportionalSymbolRenderer.MaxDataValue = statisticsResult.Maximum;proportionalSymbolRenderer.BackgroundSymbol = fillSymbol;proportionalSymbolRenderer.MinSymbol = characterMarkerSymbol as ISymbol;proportionalSymbolRenderer.LegendSymbolCount = pLegendSymbolCount;//要分成的级数
                proportionalSymbolRenderer.CreateLegendSymbols();geoFeatureLayer.Renderer = proportionalSymbolRenderer as IFeatureRenderer;}}
View Code

五、ChartRenderer专题图

使用一个饼图或柱图来表示一个要素的多个属性。有水平排列和累计排列两种。

ChartRenderer对象实现了IChartRenderer接口,其中ChartSymbol方法用于设置着色对象的着色符号,Label属性用于设置Legend的标签。

该方法用于比较一个要素中不同属性,在获得着色图层的单个或多个字段时用RendererField对象来操作。该类实现了IRendererField接口,可以通过AddField方法来添加字段。

该着色法是使用饼图来表现要素的多个属性之间的比率关系。该对象实现了IPicChartRenderer接口,使用PieChartSymbol符号来修饰要素。

/// <summary>/// 条状图渲染/// </summary>/// <param name="layerName">图层名字</param>/// <param name="RenderField">要柱状表示的字段</param>/// <param name="fillsymbolColor">这些字段分别需要渲染的颜色</param>/// <param name="BarWidth">每个柱子的宽度</param>/// <param name="BgColor">背景色</param>public void createBarChartSymbol(string layerName, string[] RenderField, IColor[] fillsymbolColor,double BarWidth,IColor BgColor){IGeoFeatureLayer geoFeatureLayer;IFeatureLayer featureLayer;ITable table;ICursor cursor;IRowBuffer rowBuffer;//获取渲染图层geoFeatureLayer = getGeoLayer(layerName);featureLayer = geoFeatureLayer as IFeatureLayer;table = featureLayer as ITable;geoFeatureLayer.ScaleSymbols = true;IChartRenderer chartRenderer = new ChartRendererClass();IRendererFields rendererFields = chartRenderer as IRendererFields;for (int i = 0; i < RenderField.Length; i++){rendererFields.AddField(RenderField[i], RenderField[i]);}//int[] fieldIndexs = new int[2];//fieldIndexs[0] = table.FindField(field1);//fieldIndexs[1] = table.FindField(field2);//获取要素最大值,决定柱子的最大高度double fieldValue = 0.0, maxValue = 0.0;cursor = table.Search(null, true);rowBuffer = cursor.NextRow();while (rowBuffer != null){for (int i = 0; i < RenderField.Length; i++){int index = table.FindField(RenderField[i]);fieldValue = double.Parse(rowBuffer.get_Value(index).ToString());if (fieldValue > maxValue){maxValue = fieldValue;}}rowBuffer = cursor.NextRow();}//创建水平排列符号IBarChartSymbol barChartSymbol = new BarChartSymbolClass();barChartSymbol.Width = BarWidth;//柱子的边长IMarkerSymbol markerSymbol = barChartSymbol as IMarkerSymbol;markerSymbol.Size = 50;//这个是?IChartSymbol chartSymbol = barChartSymbol as IChartSymbol;chartSymbol.MaxValue = maxValue;//添加渲染符号ISymbolArray symbolArray = barChartSymbol as ISymbolArray;IFillSymbol[] fillsymbol = new IFillSymbol[RenderField.Length];for (int i = 0; i < RenderField.Length; i++){//设置不同颜色的柱子fillsymbol[i] = new SimpleFillSymbolClass();fillsymbol[i].Color = fillsymbolColor[i];symbolArray.AddSymbol(fillsymbol[i] as ISymbol);//IFillSymbol fillSymbol = new SimpleFillSymbolClass();//fillSymbol.Color = getRGB(255, 0, 0);//红色柱子//symbolArray.AddSymbol(fillSymbol as ISymbol);//fillSymbol = new SimpleFillSymbolClass();//fillSymbol.Color = getRGB(0, 255, 0);//绿色柱子//symbolArray.AddSymbol(fillSymbol as ISymbol);
            }//设置柱状图符号chartRenderer.ChartSymbol = barChartSymbol as IChartSymbol;//设置底图样式IFillSymbol pFillSymbol = new SimpleFillSymbolClass();pFillSymbol.Color = BgColor;chartRenderer.BaseSymbol = pFillSymbol as ISymbol;chartRenderer.UseOverposter = false;//假如那个位置放不下柱状图,是否用线段连接指示位置//创建图例
            chartRenderer.CreateLegend();geoFeatureLayer.Renderer = chartRenderer as IFeatureRenderer;}/// <summary>/// 创建累计柱状图表(stacked)/// </summary>/// <param name="layerName">Name</param>/// <param name="RenderField">Fields</param>/// <param name="fillsymbolColor">every Color</param>/// <param name="BarWidth">width</param>/// <param name="BgColor">BackGound Color</param>public void createStackedChartSymbol(string layerName, string[] RenderField, IColor[] fillsymbolColor, double BarWidth, IColor BgColor){IGeoFeatureLayer geoFeatureLayer;IFeatureLayer featureLayer;ITable table;ICursor cursor;IRowBuffer rowBuffer;//获取渲染图层geoFeatureLayer = getGeoLayer(layerName);featureLayer = geoFeatureLayer as IFeatureLayer;table = featureLayer as ITable;geoFeatureLayer.ScaleSymbols = true;IChartRenderer chartRenderer = new ChartRendererClass();IRendererFields rendererFields = chartRenderer as IRendererFields;for (int i = 0; i < RenderField.Length; i++){rendererFields.AddField(RenderField[i], RenderField[i]);}//获取要素最大值double fieldValue = 0.0, maxValue = 0.0;cursor = table.Search(null, true);rowBuffer = cursor.NextRow();while (rowBuffer != null){for (int i = 0; i < RenderField.Length ; i++){int index = table.FindField(RenderField[i]);fieldValue = double.Parse(rowBuffer.get_Value(index).ToString());if (fieldValue > maxValue){maxValue = fieldValue;}}rowBuffer = cursor.NextRow();}//创建累积排列符号IStackedChartSymbol stackedChartSymbol = new StackedChartSymbolClass();stackedChartSymbol.Width = 10;//柱子宽度IMarkerSymbol markerSymbol = stackedChartSymbol as IMarkerSymbol;markerSymbol.Size = 50;//下面的大小IChartSymbol chartSymbol = stackedChartSymbol as IChartSymbol;chartSymbol.MaxValue = maxValue;//添加渲染符号ISymbolArray symbolArray = stackedChartSymbol as ISymbolArray;IFillSymbol[] fillsymbol = new IFillSymbol[RenderField.Length];for (int i = 0; i < RenderField.Length; i++){//设置不同颜色的柱子fillsymbol[i] = new SimpleFillSymbolClass();fillsymbol[i].Color = fillsymbolColor[i];symbolArray.AddSymbol(fillsymbol[i] as ISymbol);}//设置柱状图符号chartRenderer.ChartSymbol = stackedChartSymbol as IChartSymbol;IFillSymbol pFillSymbol = new SimpleFillSymbolClass();pFillSymbol.Color =BgColor;chartRenderer.BaseSymbol = pFillSymbol as ISymbol;chartRenderer.UseOverposter = false;//创建图例
            chartRenderer.CreateLegend();geoFeatureLayer.Renderer = chartRenderer as IFeatureRenderer;}/// <summary>/// 创建饼图/// </summary>/// <param name="layerName">name</param>/// <param name="RenderField">Fields</param>/// <param name="fillsymbolColor">Each color</param>/// <param name="BgColor">background Color</param>public void createPieChartSymbol(string layerName, string[] RenderField, IColor[] fillsymbolColor,  IColor BgColor){IGeoFeatureLayer geoFeatureLayer;IFeatureLayer featureLayer;ITable table;ICursor cursor;IRowBuffer rowBuffer;//获取渲染图层geoFeatureLayer = getGeoLayer(layerName);featureLayer = geoFeatureLayer as IFeatureLayer;table = featureLayer as ITable;geoFeatureLayer.ScaleSymbols = true;IChartRenderer chartRenderer = new ChartRendererClass();IPieChartRenderer pieChartRenderer = chartRenderer as IPieChartRenderer;IRendererFields rendererFields = chartRenderer as IRendererFields;for (int i = 0; i < RenderField.Length; i++){rendererFields.AddField(RenderField[i], RenderField[i]);}//获取渲染要素的最大值double fieldValue = 0.0, maxValue = 0.0;cursor = table.Search(null, true);rowBuffer = cursor.NextRow();while (rowBuffer != null){for (int i = 0; i < RenderField.Length ; i++){int index = table.FindField(RenderField[i]);fieldValue = double.Parse(rowBuffer.get_Value(index).ToString());if (fieldValue > maxValue){maxValue = fieldValue;}}rowBuffer = cursor.NextRow();}//设置饼图符号IPieChartSymbol pieChartSymbol = new PieChartSymbolClass();pieChartSymbol.Clockwise = true;pieChartSymbol.UseOutline = true;IChartSymbol chartSymbol = pieChartSymbol as IChartSymbol;chartSymbol.MaxValue = maxValue;ILineSymbol lineSymbol = new SimpleLineSymbolClass();lineSymbol.Color = getRGB(255, 0, 0);lineSymbol.Width = 2;pieChartSymbol.Outline = lineSymbol;IMarkerSymbol markerSymbol = pieChartSymbol as IMarkerSymbol;markerSymbol.Size = 30;//添加渲染符号ISymbolArray symbolArray = pieChartSymbol as ISymbolArray;IFillSymbol[] fillsymbol =new  IFillSymbol[RenderField.Length];for (int i = 0; i < RenderField.Length; i++){fillsymbol[i] = new SimpleFillSymbolClass();fillsymbol[i].Color = fillsymbolColor[i];symbolArray.AddSymbol(fillsymbol[i] as ISymbol);}//设置背景chartRenderer.ChartSymbol = pieChartSymbol as IChartSymbol;IFillSymbol pFillSymbol = new SimpleFillSymbolClass();pFillSymbol.Color = BgColor;chartRenderer.BaseSymbol = pFillSymbol as ISymbol;chartRenderer.UseOverposter = false;//创建图例
            chartRenderer.CreateLegend();geoFeatureLayer.Renderer = chartRenderer as IFeatureRenderer;}
View Code

 

六、DotDensityRenderer专题图

DotDensityRenderer对象使用DotDensityFillSymbol符号对Polygon类型的要素进行着色。该专题图使用随机分布的点的密度来表现要素某个属性值得大小。也可以对图层的多个属性值着色,通过指定不同的点符号来区分。

DotDensityRenderer对象实现IDotDensityRenderer接口,定义了使用点密度着色方法和属性,如DotDensitySymbol用于确定着色点符号,CreateLegend方法用于产生图例。

/// <summary>/// 点密度/// </summary>/// <param name="layerName">图层名字</param>/// <param name="RenderField">渲染字段</param>/// <param name="dotDensityFillSymbol">点密度符号</param>/// <param name="simpleMarkerSymbol">点符号</param>/// <param name="RenderDensity">点密度</param>public void createDotDensityFillSymbol(string layerName, string RenderField, IDotDensityFillSymbol dotDensityFillSymbol, ISimpleMarkerSymbol simpleMarkerSymbol,double  RenderDensity){IGeoFeatureLayer geoFeatureLayer;IDotDensityRenderer dotDensityRenderer;//获取渲染图层geoFeatureLayer = getGeoLayer(layerName);dotDensityRenderer = new DotDensityRendererClass();IRendererFields rendererFields = dotDensityRenderer as IRendererFields;//设置渲染字段
            rendererFields.AddField(RenderField, RenderField);////设置填充颜色和背景色,直接由参数传入,具体定义参考下面的 例子//dotDensityFillSymbol = new DotDensityFillSymbolClass();//dotDensityFillSymbol.DotSize = 3;//dotDensityFillSymbol.Color = getRGB(255, 0, 0);//dotDensityFillSymbol.BackgroundColor = getRGB(0, 255, 0);//设置渲染符号ISymbolArray symbolArray = dotDensityFillSymbol as ISymbolArray;//点符号样式,也可以参考下面的自己定义//ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbolClass();//simpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCircle;//simpleMarkerSymbol.Size = 2;//simpleMarkerSymbol.Color = getRGB(0, 0, 255);symbolArray.AddSymbol(simpleMarkerSymbol as ISymbol);dotDensityRenderer.DotDensitySymbol = dotDensityFillSymbol;//设置渲染密度dotDensityRenderer.DotValue = RenderDensity;//创建图例
            dotDensityRenderer.CreateLegend();geoFeatureLayer.Renderer = dotDensityRenderer as IFeatureRenderer;}
View Code

此外还有两个补充方法(在调用这些方法的时候能用到):

private IMap pMap;public Renderer(IMap _pMap){pMap = _pMap;}//获取颜色对象private IRgbColor getRGB(int r, int g, int b){IRgbColor pColor;pColor = new RgbColorClass();pColor.Red = r;pColor.Green = g;pColor.Blue = b;return pColor;}private IGeoFeatureLayer getGeoLayer(string layerName){ILayer layer;IGeoFeatureLayer geoFeatureLayer;for (int i = 0; i < this.pMap.LayerCount; i++){layer = this.pMap.get_Layer(i);if (layer != null && layer.Name == layerName){geoFeatureLayer = layer as IGeoFeatureLayer;return geoFeatureLayer;}}return null;}
View Code

 

 

 

 

 

 

转载于:https://www.cnblogs.com/arxive/p/5903526.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iVX无代码挑战五秒游戏制作

一、五秒挑战游戏简介及思考 制作iVX 低代码项目需要进入在线IDE&#xff1a;https://editor.ivx.cn/ 五秒挑战游戏指的是点击一个按钮开始计时&#xff0c;随后需要用户再次点击计时按钮&#xff0c;将会停止计时&#xff0c;当计时的时间等于五秒时将挑战成功&#xff0c;否…

C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写一个…

CSS 巧用 :before和:after

前几天的晚上较全面的去看了下css的一些文档和资料&#xff0c;大部分的样式运用都没什么大问题了&#xff0c;只是有些许较陌生&#xff0c;但是也知道他们的存在和实现的是什么样式。今天主要想在这篇学习笔记中写的也不多&#xff0c;主要是针对:before和:after写一些内容&a…

MAUI 入门教程系列(4.通用主机)

前言对于ASP.NET Core 开发人员而言, 这并不陌生, 当ASP.NET Core应用程序启动时, 会创建默认的应用程序主机, 我们可以为应用程序配置所有的依赖关系、系统设置, 最终启动。如下所示:using IHost host Host.CreateDefaultBuilder(args).ConfigureServices((_, services) >…

【MATLAB统计分析与应用100例】案例012:matlab读取Excel数据,调用robustfit函数作稳健回归

稳健回归效果预览: 文章目录 1. 读取数据2. 调用robustfit函数作稳健回归3 .绘制残差和权重的散点图4. 绘制regress函数和robustfit函数对应的回归直线5. 拟合效果1. 读取数据 ClimateData = xlsread(examp08_01.xls); % 从Excel文件读取数据 x

Android单击、长按获取当前触点坐标下(TextView)文字字符

package com.*.*.*.utils;import android.graphics.Rect; import android.text.Layout; import android.widget.TextView;public class TextViewUtils {/**获取TextView某一个字符的坐标位置return 返回的是相对坐标parms tvparms index 字符索引*/public static Rect getTextV…

后台页制作01《ivx低代码签到系统制作》

制作iVX 低代码项目需要进入在线IDE&#xff1a;https://editor.ivx.cn/ 一、签到系统思考 签到系统一般是指公布一个签到链接或者二维码&#xff0c;随后用户扫码后即可完成签到。 那如何制作呢&#xff1f;首先我们可以先不考虑签到页面的制作&#xff0c;既然签到暂时没有…

个人作业-Week2

第一部分 调研&#xff0c; 评测 运行平台 win 8 软件版本&#xff1a;微软必应词典桌面版 3.5.2 BUG标题&#xff1a;必应背单词无法发音 BUG详细描述&#xff1a;如图&#xff0c;左边为必应词典该单词的搜索&#xff0c;可以发音&#xff0c;而右边必应背单词中该单词的发音…

Blazor WebAssembly + Grpc Web=未来?

Blazor WebAssembly是什么首先来说说WebAssembly是什么&#xff0c;WebAssembly是一个可以使C#,Java,Golang等静态强类型编程语言&#xff0c;运行在浏览器中的标准&#xff0c;浏览器厂商基于此标准实现执行引擎。在实现了WebAssembly标准引擎之后&#xff0c;浏览器中可以执行…

C语言试题五十二之学生的记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组a中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写一个…

Xtrabackup备份MySQL

一、安装Xtrabackup 1234# wget --no-check-certificate http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm# rpm -ivh percona-release-0.1-4.noarch.rpm# yum list | grep percona# yum -y install percona-xtrabackup-24二、…

Can't create directory 'E:\Repositories\***\db\transactions\138-41.txn':

遇到这种问题应该是迁移SVN库时丢失了文件夹引起的&#xff0c;直接在服务器上找到对应项目的db文件夹&#xff0c;手动创建“transactions”目录和“txn-protorevs”目录即可正常提交。

[它山之石] 一件事情,假设你不能说清楚,十有八九你就做不好

记得有一次开会。我的头儿说了标题所写的这句话,自己深以为然。 有过较多解决这个问题的经历的人可能会有这种感觉&#xff0c;非常多时候&#xff0c;面对一个问题。我们即使没有全然将之想清 楚。也可以基于已有的经验给出一个可以work的解决方式&#xff0c;当然这样的情况下…

【MATLAB统计分析与应用100例】案例013:matlab读取Excel数据,调用nlinfit函数作一元非线性回归

1. 一元线性回归分析效果预览 2. matlab完整实现代码 %读取数据,绘制散点图** HeadData = xlsread(examp08_02.xls); %从Excel文

C语言试题五十三之将所有大于1小于整数m的非素数存入xx所指的数组中,非素数的个数通过k传回。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写一个…

发布功能完成02《ivx低代码签到系统制作》

制作iVX 低代码项目需要进入在线IDE&#xff1a;https://editor.ivx.cn/ 一、发布功能思考、数据库、服务创建 上一节我们制作了后台的页面&#xff0c;那么此时我们应该需要制作发布功能了&#xff0c;那么在制作之前&#xff0c;我们应该思考一下如何制作这个签到内容发布的…

力扣(leetcode)第26题删除有序数组中的重复项(Python)

26.删除有序数组的重复项 题目链接&#xff1a;26.删除有序数组的重复项 给你一个非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 …

WPF 实现简易北京地铁效果图

本文经原作者授权以原创方式二次分享&#xff0c;欢迎转载、分享。原文作者&#xff1a;眾尋原文地址&#xff1a; https://www.cnblogs.com/ZXdeveloper/p/8600785.html前言这个是百度地图上北京地铁的地址&#xff0c;我们先看下百度上面的效果图&#xff1b;我要实现的内容比…

C#学习笔记-Windows窗体自定义初始位置

根据屏幕大小定义初始位置&#xff1a; &#xff08;这个不是难&#xff0c;但是最近常常忘记&#xff0c;记着方便查看。&#xff09; 1 //获取当前屏幕的长和宽2 int ScreenX Screen.PrimaryScreen.Bounds.Width;3 int ScreenY Screen…

[转] java.nio.ByteBuffer中flip、rewind、clear方法的区别

转载 对缓冲区的读写操作首先要知道缓冲区的下限、上限和当前位置。下面这些变量的值对Buffer类中的某些操作有着至关重要的作用&#xff1a; limit&#xff1a;所有对Buffer读写操作都会以limit变量的值作为上限。position&#xff1a;代表对缓冲区进行读写时&#xff0c;当前…