如何用具有多个传感器的SerialPort的数据绘制图表
我需要绘制来自pH,温度和湿度的传感器的数据,数据以矩阵从arduino发送到PC通过串行端口发送. 我可以在文本框中显示数据,但是当我尝试绘制数据时,它不起作用(我不知道该怎么做). 我只能在不是矩阵时绘制数据,而它的数据仅来自一个传感器. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading.Tasks; using System.IO.Ports; using System.Windows.Forms.DataVisualization.Charting; namespace grafik1 { pu
12 2024-04-26
编程技术问答社区
C#顶点边缘
我有一个问题,要做此任务:n-vertex图是蝎子,如果它具有连接到顶点两个(尾巴)的顶点1(刺)的顶点3(尾巴)连接到另一个顶点3(尾巴)顶点(脚).某些脚可能连接到其他脚.设计一种算法,该算法决定给定的图形是否代表蝎子,并在哪一行刺,尾巴,身体和feets中说明. 这是我要读取的数据文件: (+)是边缘和( - ),没有边缘 我试图首先找到刺痛,但是我基本上可以如何寻找与尾巴和身体的联系? 也必须使用递归 编辑: 好的,现在我发现每行中有多少"+": int[] B = new int[100]; for (int i = 0; i
12 2024-04-26
编程技术问答社区
C# 在图形中的一组点的中心
我有一个用于使用X和Y坐标的游戏机器人的导航系统.为了了解我的角色的移动方式,我有一个简单的图纸表面1000 * 1000,我在上面绘制了路径.然后,我可以将鼠标悬停在路径中的任何节点上并获取其详细信息. 转换坐标的代码,例如60.75,73.13就是简单地转换为ints.这使一个荒谬的图像变得可笑,所以我乘以10,但仍未使用可用的空间. foreach (Node spot in path) { Point point = new Point(); point.X = Convert.ToInt32(spot.X * 10); point.Y = Convert.ToInt32(spot.Y * 10); NodeSpot dot = new NodeSpot() {
22 2024-04-26
编程技术问答社区
如何检测点云中有多少个起伏
从实时信号宣传中,我得到了8400点,我需要将它们绘制. 我的问题是,数据中有很多噪音,是否有藻类降低噪声? 我需要知道有多少个"高原"? 类似的东西: 解决方案 您可以通过计算范围的滑动窗口(最大值减去最小值)来隔离高原.观察所得信号,看看哪个阈值会区分. 下面是您通过水平形态侵蚀获得的,然后垂直计数白色像素.高原之间的斜率非常独特. 分割云后,安装高原很容易. 其他解决方案 我将: 计算pcl的bbox或obb 如果您的PCL可以使用任何方向使用 obb obb 或简单地找到PCL中的2个最遥远的点,并将其用作主要方向. 按Axis(Bbox或obb的最大一面)对PCL的Bbox专业进行排序 如果您的数据始终与您可以跳过#1相同的方向,则仅通过 来对准方向 dot(pnt[i]-p0,p1-p0) 其中p0,p1是obb或pcl中大多数遥远点的端点,pnt[i]是您的pcl的点. 使用滑动平均值来过滤噪声 因此,
10 2024-04-25
编程技术问答社区
FFT(Bluestein和Cooley-Tukey)......在开始时出现了意想不到的峰值
几天前,我发布了一些问题的FFT测试工具,所以这是我的"翻拍"帖子,几乎具有相同的问题,但代码不同. 问题: 我正在尝试制作一种工具来读取一些传感器值并进行这些传感器值.我实施了正常的DFT,一个FFT(Bluestein)和FFT(Cooley-Tukey).一切都可以正常工作,反向转换表明输入如应应有的. 唯一的事情是,当我绘制频率/振幅图时,我在开始时有一个巨大的峰值(不仅在0,例如DC(0Hz)组件应该是!). 对于Bluestein和DFT,我使用完成的输入,对于Cooley-tukey,我用zeropadding计算或将输入切为2^n长. 例如,这是我的输入,只是一个简单的鼻窦波. 在这里,DFT和Bluetstein(看起来相同)的输出和在这里我的代码前ct-fft public static void TransformRadix2(Complex[] vector, bool inverse) {
14 2024-04-25
编程技术问答社区
.NET CF中的图表
我正在寻找一个不错的自由控制,库或教程,该教程允许在.NET CF上绘制图形...我目前正在使用v2.0,但可能可以升级到3.5. 我还希望能够将图作为图像保存. 解决方案 两年前,我进行了几乎相同的搜索,找到了几次,但没有什么真正使我兴奋的了.这是我的旧结果: Mooseworks趋势图形控制 Mindfusion Pocketchart Steema Teechart QCCHART2D CF图表工具 qcrtgraph cf-实时图形工具 也许其中一个或全部在此期间以更好的性能发布了新版本,但最好自己检查一下. 其他解决方案 您实际需要多少功能? 对于我过去做的CF项目,我们只是将一些位图用作背景网格,然后在那里绘制了地块.这非常简单且低技术,但是我对它的服务方式感到惊讶.
12 2024-04-25
编程技术问答社区
如何绘制像这样的静态或动态图?
我已经从这个网站学习了很长时间,但这实际上是我第一次露面,这是我的第一个问题,我是土木工程师,我正在编写用于设计固定墙的软件,我需要要绘制如下所示的类似图,要静态或动态(我的意思是通过动态,我可以通过上下数字工具更改图形的尺寸,并且在图中可见更改,)应该是一个准备可以帮助用户进入降级的表格.我可以在哪里找到学习的来源? 我知道我可能正在与最聪明的人打交道,所以请注意,编程不是我的专业,我不是那么好,认为我是初学者. 解决方案 这是您需要在程序中添加图纸的内容的简短介绍: 0-决定平台:Winforms或WPF?对于您的图形WinForms,它会做;对于3D和动画,WFP是更好的选择,但以更陡峭的学习曲线为代价. 1-了解Winforms中的基本图形模型: 所有绘制的东西必须在paint event中绘制必须从那里触发 窗口将在外部事件(例如覆盖了. 用户应该能够在更改数据时使控件无效触发油漆事件.添加sketchPanel.Invalidate();
26 2024-04-24
编程技术问答社区
从可放大的图表中进行计算 C#
基本上,我有一个图形,该图是从数据源是从数据杂志的数据绑定的.我在图表上具有可缩放的功能,我需要使用x轴选择start和SelectionEnd来计算所选择的数据块. 因此,在另一个选项卡上的RichTextbox中,我有一些最小值和平均值.如下所示,代码: //To show the Data from file into the TextBox richTextBox1.AppendText("\n" + "Heart Average : " + HRM.Active.DataRows.Average(r => r.HeartRate) + "\n"); richTextBox1.AppendText("\n" + "Heart Minimum : " + HRM.Active.DataRows.Min(r => r.Hear
20 2024-04-24
编程技术问答社区
如何使用Microsoft.Graph向Outlook 365事件添加扩展?
我正在使用Microsoft.graph创建Office365日历事件.它运行良好,我可以创建一个事件,但是我需要在事件中添加一些额外的字符串属性,因此我为此创建了一个扩展程序.它可以很好地编译.但是,当我尝试运行它并创建一个带有添加扩展的事件时,它会引发错误: 代码:RequestBodyRead 消息:属性'ExtensionName'在类型" Microsoft.outlookservices.extension"上不存在.确保仅使用由类型定义的属性名称或将类型标记为打开类型. //Extension var evExtCollPage = new EventExtensionsCollectionPage(); var dict = new Dictionary(); dict.Add("eSmtTickeId", "123"); dict.Add("siteId", "456"); var openExtensi
14 2024-04-24
编程技术问答社区
在 google 表图表上对数据进行排序
我在工作表中有未分类的数据,我想显示带有排序数据的图表. 这是一个示例: 我希望按补偿来对图表进行排序. 如何通过图片上的数据进行构造? 解决方案 移动并将单个表分类到Sheep2中: =SORT(Sheet1!A3:B6,2,1) 然后从那里构造图表: 其他解决方案 只需按应该驱动订单的列对表进行排序.之后,将调整图.
8 2024-04-23
编程技术问答社区
如何在 JavaScript 中从某个元素后开始拓扑排序?
我已经将这种拓扑排列在JavaScript中,并具有基于 在 const graph = { edges: { c: ['d', 'f'], d: ['e'], f: ['e'], a: ['b', 'c'], b: ['d', 'e'], } } // Calcuate the incoming degree of each vertex const vertices = Object.keys(graph.edges) const inDegree = {} for (const v of vertices) { const neighbors = graph.edges[v] neighbors?.forEach(neighbor => { inDegree[neighbor] = inDegree[neighbor] + 1 || 1 }) } const queue = vertices.filte
12 2024-04-23
编程技术问答社区
寻找振动信号中的峰值
我是Python的新手,我刚刚毕业,论文是关于振动分析的,所以当我开始学习Python时.我想制作一个读取信号并提供有关图形(例如峰)的应用程序的应用程序,这是我现在拥有的 import tkinter as tk from tkinter import ttk from tkinter import filedialog as fd import matplotlib.pyplot as plt from matplotlib.widgets import Cursor import numpy as np import os Raw_1 = [] Raw_2 = [] clean_1 = [] clean_2 = [] # create the root window root = tk.Tk() root.title("Yazid ")
18 2024-04-22
编程技术问答社区
给定一个有 3 种颜色顶点的图形,请根据以下代码找出最短路径
给定的无方向的图G,其中每个Vertice都用 green red 或 blue 和正权重,找到结尾处的最短路径节点t,具有以下条件: 1.只有在我经过路径上的红色佛作时才能使用绿色的佛作. 2.只有在我过去的红色佛作和路径中的绿色佛作时才能使用蓝色的变化. 我尝试使用DFS并找到可能的路径,而不是从可能的路径中启动从节点t启动Dijkstra算法,但是复杂性太高了. 谢谢! 解决方案 Dijkstra是找到最短路径的好方法.就您而言,您还必须注意路径上的第一个顶点必须是红色的,并且只有在访问绿色的绿色时才可以使用蓝色顶点. 解决方案可以是以下(在Pythonic Pseudocode中): def red__and_green_dijkstra(G, origin, dest): for node in G.nodes(): node.was_visited_R = False node.was_visited_
40 2024-04-22
编程技术问答社区
Floyd Warshall 算法的时间复杂度
skiena的算法书包含以下解释的 >: floyd(adjacency_matrix *g) { int i,j; /* dimension counters */ int k; /* intermediate vertex counter */ int through_k; /* distance through vertex k */ for (k=1; knvertices; k++) for (i=1; invertices; i++) for (j=1; jnvertices; j++) { through_k = g->weight[i][k]+g->weight[k][j]; if (through_k weight[i][j]) g->weight[i][
32 2024-04-22
编程技术问答社区
在二维空间中计算两点之间的对角线交点时,如何确定+/-符号?
这是另一个问题并且与 Keith Randall的答案对问题.请快速查看那里的图像,以查看下面的功能要做什么. 简而言之,如果x2 != x1和y2 != y1>,2D网格上的任何两个点都将具有两个对角线相交.我实现了以下功能,但无法弄清楚如何确定要从哪个单元格中减去delta以及要添加到哪个单元.结果,对于某些坐标,结果是准确的,而对于其他坐标是相反的. // This class is the same as [Point] except // it uses BigInteger instead of Int32 types. public class Cell { System.Numerics.BigInteger X = 0; System.Numerics.BigInteger Y = 0; } public List GetIntersections (Cell c1, Cell c2) { List cell
20 2024-04-22
编程技术问答社区
通过点击按钮增加柱状图的数值
我正在尝试创建一个图表,以显示锻炼的进度.每五个按钮点击应将刻度添加到图表中.这是它应该看起来的一个例子. 出于演示目的,我正在使用按钮点击,在生产中,点击将是轮子的每二十转. private int counter = 0; private void button1_Click(object sender, EventArgs e) { counter++; // code will go here } 预先感谢 解决方案 您可以使用A Bitmap Buffer或A panel来绘制.这是一个头开始:只是一个样本. 此解决方案基于WinForms&Panel_Paint(). 您可以尝试添加垂直进度标签和图表的Y轴值标签. 代码: using System; using System.Collections.Generic; using System.ComponentModel; u
12 2024-04-20
编程技术问答社区
通过点击按钮增加柱状图的数值
我正在尝试创建一个图表,以显示锻炼的进度.每五个按钮点击应将刻度添加到图表中.这是它应该看起来的一个例子. 出于演示目的,我正在使用按钮点击,在生产中,点击将是轮子的每二十转. private int counter = 0; private void button1_Click(object sender, EventArgs e) { counter++; // code will go here } 预先感谢 解决方案 您可以使用A Bitmap Buffer或A panel来绘制.这是一个头开始:只是一个样本. 此解决方案基于WinForms&Panel_Paint(). 您可以尝试添加垂直进度标签和图表的Y轴值标签. 代码: using System; using System.Collections.Generic; using System.ComponentModel; u
12 2024-04-20
编程技术问答社区
ZedGraph垂直线与LineObj的问题
我有一个带有几条曲线的ZedgraphControl,我想在一些固定的X位置上添加垂直线.当然,线应仅在实际的图形区域内. 我尝试关注 LineObj line = new LineObj(Color.Black, xPos, myPane.YAxis.Scale.Min, xPos, myPane.YAxis.Scale.Max); line.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash; line.Line.Width = 1f; myPane.GraphObjList.Add(line); 这可以正常工作,直到用户缩放图形为止,然后垂直线将伸出实际的图形区域(请参见下面的PIC链接,也请注意,它不会在图内划线,奇数). ). /zedgraphzoom.png/ 有没有办法解决此问题(如果只有一种方法可以获取当前变焦的mypane.xaxis.scale.sin.min和max,然后在zo
4 2024-04-19
编程技术问答社区
.NET(或MFC)的高速图形控件?
我需要编写一个数字示波器类型应用程序.那里有许多很棒的静态图形控件,但是我需要一些可以图16迹线处理4000个样本的东西. 有人知道.NET的高速图形控件吗?我什至会服用MFC,因为可以将其包裹到.NET控件中. 感谢您的帮助! 解决方案 Zedgraph怎么样?他们在此处特别提及实时应用程序: display_dynamic_or_real time_data 他们每秒至少要求约20个样本. 以每秒4000个样本为4000个样本,我认为您不想实时绘制所有要点,因为您要在0.25秒内整个屏幕上的整个过程... 其他解决方案 其他解决方案 您是否看过 graphviz ?我已经在示波器应用中看到了它,但是我不是肯定的,它将处理您想要的速度. GraphViz没有像我所见过的某些GDI+控件那样进行指令的"实时饲料". 有一些 .net包装器 for .
12 2024-04-19
编程技术问答社区