2025-05-09T17:28:38
This commit is contained in:
parent
62bf7d4d9f
commit
1ebb49e633
BIN
experiment_data/sample_data/~$锡.xlsx
Normal file
BIN
experiment_data/sample_data/~$锡.xlsx
Normal file
Binary file not shown.
8
src/.idea/.gitignore
vendored
Normal file
8
src/.idea/.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# 基于编辑器的 HTTP 客户端请求
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
1
src/.idea/.name
Normal file
1
src/.idea/.name
Normal file
@ -0,0 +1 @@
|
|||||||
|
AnalysisTool
|
||||||
344
src/.idea/editor.xml
Normal file
344
src/.idea/editor.xml
Normal file
@ -0,0 +1,344 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="BackendCodeEditorSettings">
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CDeclarationWithImplicitIntType/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CommentTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstevalIfIsAlwaysConstant/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractClassWithoutSpecifier/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractFinalClass/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractVirtualFunctionCallInCtor/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAccessSpecifierWithNoDeclarations/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAwaiterTypeIsNotClass/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBooleanIncrementExpression/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatBadCode/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatLegacyCode/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatMixedArgs/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatTooFewArgs/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatTooManyArgs/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCStyleCast/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCVQualifierCanNotBeAppliedToReference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassCanBeFinal/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassIsIncomplete/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassNeedsConstructorBecauseOfUninitializedMember/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCompileTimeConstantCanBeReplacedWithBooleanConstant/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConceptNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConditionalExpressionCanBeSimplified/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConstParameterInDeclaration/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConstValueFunctionReturnType/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCoroutineCallResolveError/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAArrayIndexOutOfBounds/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantConditions/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantFunctionResult/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantParameter/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFADeletedPointer/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAEndlessLoop/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAInfiniteRecursion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAInvalidatedMemory/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALocalValueEscapesFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALocalValueEscapesScope/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALoopConditionNotUpdated/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAMemoryLeak/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFANotInitializedField/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFANullDereference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFATimeOver/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreachableCode/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreachableFunctionCall/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreadVariable/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnusedValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationHidesLocal/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationHidesUncapturedLocal/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationSpecifierWithoutDeclarators/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorDisambiguatedAsFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorUsedBeforeInitialization/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultCaseNotHandledInSwitchStatement/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultInitializationWithNoUserConstructor/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultIsUsedAsIdentifier/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultedSpecialMemberFunctionIsImplicitlyDeleted/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeletingVoidPointer/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDependentTemplateWithoutTemplateKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDependentTypeWithoutTypenameKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedEntity/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedOverridenMethod/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedRegisterStorageClassSpecifier/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDereferenceOperatorLimitExceeded/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDiscardedPostfixOperatorResult/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenSyntaxError/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenUndocumentedParameter/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenUnresolvedReference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEmptyDeclaration/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceCVQualifiersOrder/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceCVQualifiersPlacement/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceDoStatementBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceForStatementBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceFunctionDeclarationStyle/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceIfStatementBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceNestedNamespacesStyle/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceOverridingDestructorStyle/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceOverridingFunctionStyle/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceTypeAliasCodeStyle/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceWhileStatementBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEntityAssignedButNoRead/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEntityUsedOnlyInUnevaluatedContext/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnumeratorNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEqualOperandsInBinaryExpression/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEvaluationFailure/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppExplicitSpecializationInNonNamespaceScope/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppExpressionWithoutSideEffects/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFinalFunctionInFinalClass/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFinalNonOverridingVirtualFunction/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppForLoopCanBeReplacedWithWhile/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppForwardEnumDeclarationWithoutUnderlyingType/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionDoesntReturnValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionIsNotImplemented/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionResultShouldBeUsed/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionalStyleCast/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHeaderHasBeenAlreadyIncluded/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHiddenFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHidingFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIdenticalOperandsInBinaryExpression/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIfCanBeReplacedByConstexprIf/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppImplicitDefaultConstructorNotAvailable/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIncompatiblePointerConversion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIncompleteSwitchStatement/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppInconsistentNaming/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIntegralToPointerConversion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppInvalidLineContinuation/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppJoinDeclarationAndAssignment/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLambdaCaptureNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableMayBeConst/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableMightNotBeInitialized/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableWithNonTrivialDtorIsNeverUsed/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLongFloat/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberFunctionMayBeConst/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberFunctionMayBeStatic/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberInitializersOrder/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMismatchedClassTags/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMissingIncludeGuard/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMissingKeywordThrow/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtAddressOfClassRValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtBindingRValueToLvalueReference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtCopyElisionInCopyInitDeclarator/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtDoubleUserConversionInCopyInit/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtNotInitializedStaticConstLocalVar/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtReinterpretCastFromNullptr/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMultiCharacterLiteral/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMultiCharacterWideLiteral/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMustBePublicVirtualToImplementInterface/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMutableSpecifierOnReferenceMember/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNoDiscardExpression/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNodiscardFunctionWithoutReturnValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExceptionSafeResourceAcquisition/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExplicitConversionOperator/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExplicitConvertingConstructor/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonInlineFunctionDefinitionInHeaderFile/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonInlineVariableDefinitionInHeaderFile/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNotAllPathsReturnValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppObjectMemberMightNotBeInitialized/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppOutParameterMustBeWritten/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterMayBeConst/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterMayBeConstPtrOrRef/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterNamesMismatch/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterNeverUsed/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPassValueParameterByConstReference/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPointerConversionDropsQualifiers/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPointerToIntegralConversion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPolymorphicClassWithNonVirtualPublicDestructor/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyErroneousEmptyStatements/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyUninitializedMember/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyUnintendedObjectSlicing/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrecompiledHeaderIsNotIncluded/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrecompiledHeaderNotFound/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfBadFormat/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfExtraArg/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfMissedArg/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfRiskyFormat/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrivateSpecialMemberFunctionIsNotImplemented/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRangeBasedForIncompatibleReference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedefinitionOfDefaultArgumentInOverrideFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantAccessSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBaseClassAccessSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBaseClassInitializer/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBooleanExpressionArgument/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantCastExpression/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantComplexityInComparison/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantConditionalExpression/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantConstSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantControlFlowJump/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantDereferencingAndTakingAddress/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElaboratedTypeSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElseKeyword/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElseKeywordInsideCompoundStatement/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantEmptyDeclaration/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantEmptyStatement/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantExportKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantFwdClassOrEnumSpecifier/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantInlineSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantLambdaParameterList/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantMemberInitializer/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantNamespaceDefinition/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantParentheses/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantQualifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantQualifierADL/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantStaticSpecifierOnMemberAllocationFunction/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantStaticSpecifierOnThreadLocalLocalVariable/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTemplateArguments/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTemplateKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTypenameKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantVoidArgumentList/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantZeroInitializerInAggregateInitialization/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReinterpretCastFromVoidPtr/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRemoveRedundantBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReplaceMemsetWithZeroInitialization/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReplaceTieWithStructuredBinding/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReturnNoValueInNonVoidFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSmartPointerVsMakeFunction/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSomeObjectMembersMightNotBeInitialized/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSpecialFunctionWithoutNoexceptSpecification/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticAssertFailure/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticDataMemberInUnnamedStruct/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticSpecifierOnAnonymousNamespaceMember/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStringLiteralToCharPointerConversion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTabsAreDisallowed/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateArgumentsCanBeDeduced/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateParameterNeverUsed/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateParameterShadowing/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppThrowExpressionCanBeReplacedWithRethrow/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTooWideScope/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTooWideScopeInitStatement/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTypeAliasNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUninitializedDependentBaseClass/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUninitializedNonStaticDataMember/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnionMemberOfReferenceType/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnmatchedPragmaEndRegionDirective/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnmatchedPragmaRegionDirective/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnnamedNamespaceInHeaderFile/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnnecessaryWhitespace/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnsignedZeroComparison/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnusedIncludeDirective/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAlgorithmWithCount/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAssociativeContains/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAuto/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAutoForNumeric/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseElementsView/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseEraseAlgorithm/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseFamiliarTemplateSyntaxForGenericLambdas/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseRangeAlgorithm/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseStdSize/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseStructuredBinding/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseTypeTraitAlias/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUserDefinedLiteralSuffixDoesNotStartWithUnderscore/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUsingResultOfAssignmentAsCondition/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVariableCanBeMadeConstexpr/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVirtualFunctionCallInsideCtor/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVirtualFunctionInFinalClass/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVolatileParameterInDeclaration/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWarningDirective/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWrongIncludesOrder/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWrongSlashesInIncludeDirective/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppZeroConstantCanBeReplacedWithNullptr/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppZeroValuedExpressionUsedAsNullPointer/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IdentifierTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IfStdIsConstantEvaluatedCanBeReplaced/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StdIsConstantEvaluatedWillAlwaysEvaluateToConstant/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StringLiteralTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppClangFormat/EnableClangFormatSupport/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_ARGUMENT/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_BINARY_EXPRESSIONS_CHAIN/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_CALLS_CHAIN/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_EXPRESSION/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_EXTENDS_LIST/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_FOR_STMT/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_PARAMETER/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_TYPE_ARGUMENT/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_TYPE_PARAMETER/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTIPLE_DECLARATION/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_TERNARY/@EntryValue" value="ALIGN_ALL" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ANONYMOUS_METHOD_DECLARATION_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BLANK_LINES_AROUND_CLASS_DEFINITION/@EntryValue" value="1" type="int" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BLANK_LINES_AROUND_DECLARATIONS/@EntryValue" value="0" type="int" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BLANK_LINES_AROUND_FUNCTION_DECLARATION/@EntryValue" value="1" type="int" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BLANK_LINES_AROUND_FUNCTION_DEFINITION/@EntryValue" value="1" type="int" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BREAK_TEMPLATE_DECLARATION/@EntryValue" value="LINE_BREAK" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/CASE_BLOCK_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/CONTINUOUS_LINE_INDENT/@EntryValue" value="Double" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/FREE_BLOCK_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_ACCESS_SPECIFIERS_FROM_CLASS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_CASE_FROM_SWITCH/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_CLASS_MEMBERS_FROM_ACCESS_SPECIFIERS/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_COMMENT/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_SIZE/@EntryValue" value="4" type="int" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_STYLE/@EntryValue" value="Space" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INITIALIZER_BRACES/@EntryValue" value="END_OF_LINE_NO_SPACE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INT_ALIGN_EQ/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INVOCABLE_DECLARATION_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/KEEP_BLANK_LINES_IN_CODE/@EntryValue" value="2" type="int" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/KEEP_BLANK_LINES_IN_DECLARATIONS/@EntryValue" value="2" type="int" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/KEEP_USER_LINEBREAKS/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/LINE_BREAK_AFTER_COLON_IN_MEMBER_INITIALIZER_LISTS/@EntryValue" value="ON_SINGLE_LINE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/MEMBER_INITIALIZER_LIST_STYLE/@EntryValue" value="DO_NOT_CHANGE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/NAMESPACE_DECLARATION_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/NAMESPACE_INDENTATION/@EntryValue" value="All" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/OTHER_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/PLACE_CATCH_ON_NEW_LINE/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/PLACE_ELSE_ON_NEW_LINE/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/PLACE_NAMESPACE_DEFINITIONS_ON_SAME_LINE/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/PLACE_WHILE_ON_NEW_LINE/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SIMPLE_BLOCK_STYLE/@EntryValue" value="DO_NOT_CHANGE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_CAST_EXPRESSION_PARENTHESES/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_COLON_IN_BITFIELD_DECLARATOR/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_COMMA_IN_TEMPLATE_ARGS/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_COMMA_IN_TEMPLATE_PARAMS/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_EXTENDS_COLON/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_FOR_COLON/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_FOR_SEMICOLON/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_PTR_IN_DATA_MEMBER/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_PTR_IN_DATA_MEMBERS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_PTR_IN_METHOD/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_PTR_IN_NESTED_DECLARATOR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_REF_IN_DATA_MEMBER/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_REF_IN_DATA_MEMBERS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_REF_IN_METHOD/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_UNARY_OPERATOR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_COLON_IN_BITFIELD_DECLARATOR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_EXTENDS_COLON/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_FOR_COLON/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_FOR_SEMICOLON/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_PTR_IN_ABSTRACT_DECL/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_PTR_IN_DATA_MEMBER/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_PTR_IN_DATA_MEMBERS/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_PTR_IN_METHOD/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_REF_IN_ABSTRACT_DECL/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_REF_IN_DATA_MEMBER/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_REF_IN_DATA_MEMBERS/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_REF_IN_METHOD/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_TEMPLATE_ARGS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_TEMPLATE_PARAMS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BETWEEN_CLOSING_ANGLE_BRACKETS_IN_TEMPLATE_ARGS/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_ARRAY_ACCESS_BRACKETS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_CAST_EXPRESSION_PARENTHESES/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_DECLARATION_PARENTHESES/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_EMPTY_BLOCKS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_EMPTY_INITIALIZER_BRACES/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_EMPTY_METHOD_PARENTHESES/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_EMPTY_TEMPLATE_PARAMS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_INITIALIZER_BRACES/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_TEMPLATE_ARGS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_TEMPLATE_PARAMS/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPECIAL_ELSE_IF_TREATMENT/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/TAB_WIDTH/@EntryValue" value="4" type="int" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/TYPE_DECLARATION_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_AFTER_BINARY_OPSIGN/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_AFTER_DECLARATION_LPAR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_AFTER_INVOCATION_LPAR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_ARGUMENTS_STYLE/@EntryValue" value="WRAP_IF_LONG" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_DECLARATION_LPAR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_DECLARATION_RPAR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_INVOCATION_LPAR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_INVOCATION_RPAR/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_TERNARY_OPSIGNS/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_PARAMETERS_STYLE/@EntryValue" value="WRAP_IF_LONG" type="string" />
|
||||||
|
<option name="/Default/CodeStyle/EditorConfig/EnableClangFormatSupport/@EntryValue" value="false" type="bool" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
7
src/.idea/misc.xml
Normal file
7
src/.idea/misc.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CMakePythonSetting">
|
||||||
|
<option name="pythonIntegrationState" value="YES" />
|
||||||
|
</component>
|
||||||
|
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
|
||||||
|
</project>
|
||||||
8
src/.idea/modules.xml
Normal file
8
src/.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/src.iml" filepath="$PROJECT_DIR$/.idea/src.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
2
src/.idea/src.iml
Normal file
2
src/.idea/src.iml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module classpath="CMake" type="CPP_MODULE" version="4" />
|
||||||
6
src/.idea/vcs.xml
Normal file
6
src/.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@ -28,9 +28,11 @@ SOURCES += \
|
|||||||
global.cpp \
|
global.cpp \
|
||||||
logger/logger.cpp \
|
logger/logger.cpp \
|
||||||
ui/aboutform.cpp \
|
ui/aboutform.cpp \
|
||||||
|
ui/analysisoperationrecorder.cpp \
|
||||||
ui/axissettingform.cpp \
|
ui/axissettingform.cpp \
|
||||||
ui/coefficientselectionform.cpp \
|
ui/coefficientselectionform.cpp \
|
||||||
ui/enthalpydatacorrectionform.cpp \
|
ui/enthalpydatacorrectionform.cpp \
|
||||||
|
ui/itemmanager.cpp \
|
||||||
ui/localcustomplot.cpp \
|
ui/localcustomplot.cpp \
|
||||||
ui/printpreviewform.cpp \
|
ui/printpreviewform.cpp \
|
||||||
ui/rightwidget.cpp \
|
ui/rightwidget.cpp \
|
||||||
@ -62,9 +64,11 @@ HEADERS += \
|
|||||||
defines.h \
|
defines.h \
|
||||||
logger/logger.h \
|
logger/logger.h \
|
||||||
ui/aboutform.h \
|
ui/aboutform.h \
|
||||||
|
ui/analysisoperationrecorder.h \
|
||||||
ui/axissettingform.h \
|
ui/axissettingform.h \
|
||||||
ui/coefficientselectionform.h \
|
ui/coefficientselectionform.h \
|
||||||
ui/enthalpydatacorrectionform.h \
|
ui/enthalpydatacorrectionform.h \
|
||||||
|
ui/itemmanager.h \
|
||||||
ui/localcustomplot.h \
|
ui/localcustomplot.h \
|
||||||
ui/printpreviewform.h \
|
ui/printpreviewform.h \
|
||||||
ui/rightwidget.h \
|
ui/rightwidget.h \
|
||||||
|
|||||||
@ -259,9 +259,9 @@ float PointCalculate::calculateArea() {
|
|||||||
|
|
||||||
float startTemp = _leftSelectedPoint.x();
|
float startTemp = _leftSelectedPoint.x();
|
||||||
|
|
||||||
float c = Global::_enthalpyCoefficientVtr.at(0);
|
float a = Global::_enthalpyCoefficientVtr.at(0);
|
||||||
float b = Global::_enthalpyCoefficientVtr.at(1);
|
float b = Global::_enthalpyCoefficientVtr.at(1);
|
||||||
float a = Global::_enthalpyCoefficientVtr.at(2);
|
float c = Global::_enthalpyCoefficientVtr.at(2);
|
||||||
|
|
||||||
coefficient = a * startTemp * startTemp +
|
coefficient = a * startTemp * startTemp +
|
||||||
b * startTemp +
|
b * startTemp +
|
||||||
@ -663,29 +663,3 @@ double PointCalculate::obtainTimeValueBasedOnTemperatureValue(const double sampl
|
|||||||
return targetValue;
|
return targetValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPointF PointCalculate::onsetTemperaturePoint(const double x1, const double x2)
|
|
||||||
{
|
|
||||||
const double threshold = 0.1;
|
|
||||||
QPointF targetPoint;
|
|
||||||
|
|
||||||
QVector<QPointF> pointVtr = getPointVtrInXRange(x1,x2);
|
|
||||||
for(int i = 3;i < pointVtr.size();i++){
|
|
||||||
QPointF prePoint1 = pointVtr.at(i - 1);
|
|
||||||
QPointF prePoint2 = pointVtr.at(i - 2);
|
|
||||||
QPointF prePoint3 = pointVtr.at(i - 3);
|
|
||||||
|
|
||||||
QPointF currentPoint = pointVtr.at(i);
|
|
||||||
|
|
||||||
if(std::abs(prePoint1.y() - currentPoint.y()) > threshold){
|
|
||||||
targetPoint = pointVtr.at(i - 3);
|
|
||||||
}
|
|
||||||
if(std::abs(prePoint2.y() - currentPoint.y()) > threshold){
|
|
||||||
targetPoint = pointVtr.at(i - 3);
|
|
||||||
}
|
|
||||||
if(std::abs(prePoint3.y() - currentPoint.y()) > threshold){
|
|
||||||
targetPoint = pointVtr.at(i - 3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return targetPoint;
|
|
||||||
}
|
|
||||||
|
|||||||
@ -50,8 +50,6 @@ double calculateSlope(double x1, double y1, double x2, double y2) ;
|
|||||||
QVector<double> findInflectionPoints(const QVector<double>& x, const QVector<double>& y) ;
|
QVector<double> findInflectionPoints(const QVector<double>& x, const QVector<double>& y) ;
|
||||||
QMap<double, Line> calculateTangentLine(const QVector<double>& x, const QVector<double>& y) ;
|
QMap<double, Line> calculateTangentLine(const QVector<double>& x, const QVector<double>& y) ;
|
||||||
|
|
||||||
QPointF onsetTemperaturePoint(const double x1,const double x2);
|
|
||||||
|
|
||||||
//private
|
//private
|
||||||
void updateStartEndPoint();
|
void updateStartEndPoint();
|
||||||
QPair<QPointF,QPointF> calculateMaxDiffPointLeft();
|
QPair<QPointF,QPointF> calculateMaxDiffPointLeft();
|
||||||
|
|||||||
104
src/global.cpp
104
src/global.cpp
@ -1,3 +1,6 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <limits>
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
namespace Global {
|
namespace Global {
|
||||||
@ -20,6 +23,107 @@ QString converDoubleToStr(const double num)
|
|||||||
return QString::number(num,'f',3);
|
return QString::number(num,'f',3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void quadraticLeastSquaresFit(double x[], double y[], int n, double coeff[])
|
||||||
|
{
|
||||||
|
if (n < 3) {
|
||||||
|
throw std::invalid_argument("At least 3 data points are required for quadratic fitting");
|
||||||
|
}
|
||||||
|
|
||||||
|
double sum_x = 0, sum_x2 = 0, sum_x3 = 0, sum_x4 = 0;
|
||||||
|
double sum_y = 0, sum_xy = 0, sum_x2y = 0;
|
||||||
|
|
||||||
|
// 计算各项累加和
|
||||||
|
for (int i = 0; i < n; ++i) {
|
||||||
|
double xi = x[i];
|
||||||
|
double xi2 = xi * xi;
|
||||||
|
double xi3 = xi2 * xi;
|
||||||
|
double xi4 = xi3 * xi;
|
||||||
|
double yi = y[i];
|
||||||
|
|
||||||
|
sum_x += xi;
|
||||||
|
sum_x2 += xi2;
|
||||||
|
sum_x3 += xi3;
|
||||||
|
sum_x4 += xi4;
|
||||||
|
sum_y += yi;
|
||||||
|
sum_xy += xi * yi;
|
||||||
|
sum_x2y += xi2 * yi;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建正规方程组的增广矩阵
|
||||||
|
double matrix[3][4] = {
|
||||||
|
{sum_x4, sum_x3, sum_x2, sum_x2y}, // 对应方程: a*Σx⁴ + b*Σx³ + c*Σx² = Σx²y
|
||||||
|
{sum_x3, sum_x2, sum_x, sum_xy}, // 对应方程: a*Σx³ + b*Σx² + c*Σx = Σxy
|
||||||
|
{sum_x2, sum_x, static_cast<double>(n), sum_y} // 对应方程: a*Σx² + b*Σx + c*n = Σy
|
||||||
|
};
|
||||||
|
|
||||||
|
// 高斯消元法解方程组
|
||||||
|
for (int i = 0; i < 3; ++i) {
|
||||||
|
// 部分主元选择
|
||||||
|
int maxRow = i;
|
||||||
|
for (int k = i + 1; k < 3; ++k) {
|
||||||
|
if (std::abs(matrix[k][i]) > std::abs(matrix[maxRow][i])) {
|
||||||
|
maxRow = k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 交换行
|
||||||
|
for (int k = i; k < 4; ++k) {
|
||||||
|
std::swap(matrix[i][k], matrix[maxRow][k]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 消元
|
||||||
|
for (int k = i + 1; k < 3; ++k) {
|
||||||
|
double factor = matrix[k][i] / matrix[i][i];
|
||||||
|
for (int j = i; j < 4; ++j) {
|
||||||
|
matrix[k][j] -= factor * matrix[i][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 回代求解
|
||||||
|
coeff[2] = matrix[2][3] / matrix[2][2]; // c
|
||||||
|
coeff[1] = (matrix[1][3] - matrix[1][2] * coeff[2]) / matrix[1][1]; // b
|
||||||
|
coeff[0] = (matrix[0][3] - matrix[0][2] * coeff[2] - matrix[0][1] * coeff[1]) / matrix[0][0]; // a
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算一元一次函数在给定区间内开始变成负值的点
|
||||||
|
double findNegativeStartPoint(double m, double b, double start, double end) {
|
||||||
|
// 处理斜率为零的情况
|
||||||
|
if (m == 0) {
|
||||||
|
// 当斜率为 0 时,函数值为常数 b
|
||||||
|
if (b < 0) {
|
||||||
|
return start; // 若 b 为负,函数在区间起始点就为负
|
||||||
|
} else {
|
||||||
|
return std::numeric_limits<double>::infinity(); // 若 b 非负,函数在区间内不会变负
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算零点
|
||||||
|
double zeroPoint = -b / m;
|
||||||
|
|
||||||
|
// 检查零点是否在给定区间内
|
||||||
|
if (zeroPoint >= start && zeroPoint <= end) {
|
||||||
|
return zeroPoint; // 零点在区间内,函数在此点开始变负
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据斜率正负判断函数单调性,进而判断函数在区间内是否会变负
|
||||||
|
if (m > 0) {
|
||||||
|
// 斜率大于 0,函数单调递增
|
||||||
|
if (m * start + b < 0) {
|
||||||
|
return start; // 起始点函数值为负,函数在起始点就为负
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 斜率小于 0,函数单调递减
|
||||||
|
if (m * end + b < 0) {
|
||||||
|
return end; // 结束点函数值为负,函数在结束点开始为负
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 函数在区间内不会变负
|
||||||
|
return std::numeric_limits<double>::infinity();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
#include "protocol.h"
|
#include "protocol.h"
|
||||||
|
|
||||||
namespace Global {
|
namespace Global {
|
||||||
const QString ConSoftVersion = "0.9.7";
|
const QString ConSoftVersion = "0.9.7.1";
|
||||||
|
|
||||||
const QString ExperimentDirPath = QDir::currentPath()+"/../experiment_data";
|
const QString ExperimentDirPath = QDir::currentPath()+"/../experiment_data";
|
||||||
|
|
||||||
@ -109,8 +109,10 @@ extern bool _displayTimeValue;
|
|||||||
|
|
||||||
// common func
|
// common func
|
||||||
QString converDoubleToStr(const double);
|
QString converDoubleToStr(const double);
|
||||||
}
|
void quadraticLeastSquaresFit(double x[], double y[], int n, double coeff[]);
|
||||||
|
double findNegativeStartPoint(double m, double b, double start, double end);
|
||||||
|
|
||||||
|
}
|
||||||
#if 0
|
#if 0
|
||||||
class Global:public QObject
|
class Global:public QObject
|
||||||
{
|
{
|
||||||
|
|||||||
15
src/ui/analysisoperationrecorder.cpp
Normal file
15
src/ui/analysisoperationrecorder.cpp
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#include "analysisoperationrecorder.h"
|
||||||
|
|
||||||
|
namespace AnalysisOperationRecorder {
|
||||||
|
void addAnalysisOperation(const AnalysisOperation ao)
|
||||||
|
{
|
||||||
|
_ananlysisOperationVtr.push_back(ao);
|
||||||
|
}
|
||||||
|
|
||||||
|
void removeTheLastAnalysisOperation()
|
||||||
|
{
|
||||||
|
if (!_ananlysisOperationVtr.isEmpty()) {
|
||||||
|
_ananlysisOperationVtr.removeLast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
27
src/ui/analysisoperationrecorder.h
Normal file
27
src/ui/analysisoperationrecorder.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#ifndef ANALYSISOPERATIONRECORDER_H
|
||||||
|
#define ANALYSISOPERATIONRECORDER_H
|
||||||
|
|
||||||
|
namespace AnalysisOperationRecorder {
|
||||||
|
enum AnalysisMode{
|
||||||
|
Null,
|
||||||
|
NumericalLabel,
|
||||||
|
StartPoint,
|
||||||
|
StopPoint,
|
||||||
|
PeakSynthesisAnalysis,
|
||||||
|
GlassTransition,
|
||||||
|
OnsetTemperaturePoint,
|
||||||
|
EndsetTemperaturePoint
|
||||||
|
};
|
||||||
|
struct AnalysisOperation{
|
||||||
|
AnalysisMode mode;
|
||||||
|
QPointF point;
|
||||||
|
QString str;
|
||||||
|
};
|
||||||
|
|
||||||
|
QVector<AnalysisOperation> _ananlysisOperationVtr;
|
||||||
|
void addAnalysisOperation(const AnalysisOperation);
|
||||||
|
void removeTheLastAnalysisOperation();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // ANALYSISOPERATIONRECORDER_H
|
||||||
@ -5,11 +5,13 @@
|
|||||||
#include <qcustomplot.h>
|
#include <qcustomplot.h>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
|
||||||
|
#include "analysisoperationrecorder.h"
|
||||||
#include "centralwidget.h"
|
#include "centralwidget.h"
|
||||||
#include "filemanager.h"
|
#include "filemanager.h"
|
||||||
#include "pointcalculate.h"
|
#include "pointcalculate.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include "xlsxhandler.h"
|
#include "xlsxhandler.h"
|
||||||
|
#include "itemmanager.h"
|
||||||
|
|
||||||
CentralWidget::CentralWidget(QWidget *parent)
|
CentralWidget::CentralWidget(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
@ -246,7 +248,7 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &filePath)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug() << "slotRecvAnalysisFileName" << filePath;
|
// qDebug() << "slotRecvAnalysisFileName:" << filePath;
|
||||||
|
|
||||||
Global::CurveFileData cfd;
|
Global::CurveFileData cfd;
|
||||||
if(XlsxHandler::readFile(filePath,cfd) != 0){
|
if(XlsxHandler::readFile(filePath,cfd) != 0){
|
||||||
@ -304,13 +306,22 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &filePath)
|
|||||||
|
|
||||||
void CentralWidget::slotAnalysisSettingApply()
|
void CentralWidget::slotAnalysisSettingApply()
|
||||||
{
|
{
|
||||||
|
double x1 = _line1->point1->coords().x();
|
||||||
|
double x2 = _line2->point1->coords().x();
|
||||||
|
|
||||||
|
if(_x1Record == x1 && _x2Record == x2){
|
||||||
|
return;
|
||||||
|
}else{
|
||||||
|
_x1Record = x1;
|
||||||
|
_x2Record = x2;
|
||||||
|
}
|
||||||
|
//
|
||||||
switch (_analysisMode) {
|
switch (_analysisMode) {
|
||||||
case AnalysisMode::NumericalLabel:
|
case AnalysisMode::NumericalLabel:
|
||||||
{
|
{
|
||||||
QPointF selectPoint = PointCalculate::getClosestPointByX(
|
QPointF selectPoint = PointCalculate::getClosestPointByX(x1);
|
||||||
_line1->point1->coords().x());
|
|
||||||
|
|
||||||
logde<<"lin1 x:"<<_line1->point1->coords().x();
|
// logde<<"lin1 x:"<<x1;
|
||||||
|
|
||||||
if(selectPoint.isNull()){
|
if(selectPoint.isNull()){
|
||||||
QMessageBox::warning((QWidget*)this->parent(), "warnning", "曲线选择错误.");
|
QMessageBox::warning((QWidget*)this->parent(), "warnning", "曲线选择错误.");
|
||||||
@ -324,8 +335,6 @@ void CentralWidget::slotAnalysisSettingApply()
|
|||||||
}
|
}
|
||||||
case AnalysisMode::StartPoint:
|
case AnalysisMode::StartPoint:
|
||||||
case AnalysisMode::StopPoint:{
|
case AnalysisMode::StopPoint:{
|
||||||
double x1 = _line1->point1->coords().x();
|
|
||||||
double x2 = _line2->point1->coords().x();
|
|
||||||
PointCalculate::setRegionPointX(x1,x2);
|
PointCalculate::setRegionPointX(x1,x2);
|
||||||
|
|
||||||
QPair<QPointF, QPointF> startEndPointPair =
|
QPair<QPointF, QPointF> startEndPointPair =
|
||||||
@ -343,9 +352,6 @@ void CentralWidget::slotAnalysisSettingApply()
|
|||||||
}
|
}
|
||||||
case AnalysisMode::PeakSynthesisAnalysis:
|
case AnalysisMode::PeakSynthesisAnalysis:
|
||||||
{
|
{
|
||||||
double x1 = _line1->point1->coords().x();
|
|
||||||
double x2 = _line2->point1->coords().x();
|
|
||||||
|
|
||||||
fillGraph(x1,x2);
|
fillGraph(x1,x2);
|
||||||
|
|
||||||
PointCalculate::setRegionPointX(x1,x2);
|
PointCalculate::setRegionPointX(x1,x2);
|
||||||
@ -359,14 +365,14 @@ void CentralWidget::slotAnalysisSettingApply()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logde<<"sample weight:"<<sampleWeight;
|
// logde<<"sample weight:"<<sampleWeight;
|
||||||
|
|
||||||
double enthalpyValue = PointCalculate::calculateArea() / sampleWeight;
|
double enthalpyValue = PointCalculate::calculateArea() / sampleWeight;
|
||||||
|
|
||||||
//peak
|
// peak
|
||||||
QPointF peakPoint = PointCalculate::getPeakPoint();
|
QPointF peakPoint = PointCalculate::getPeakPoint();
|
||||||
|
|
||||||
//start point and end point
|
// start point and end point
|
||||||
QPair<QPointF, QPointF> startEndPointPair =
|
QPair<QPointF, QPointF> startEndPointPair =
|
||||||
PointCalculate::calculateStartAndEndPoint();
|
PointCalculate::calculateStartAndEndPoint();
|
||||||
|
|
||||||
@ -396,21 +402,22 @@ void CentralWidget::slotAnalysisSettingApply()
|
|||||||
}
|
}
|
||||||
case AnalysisMode::GlassTransition:
|
case AnalysisMode::GlassTransition:
|
||||||
{
|
{
|
||||||
// glassTransitionHandle();
|
glassTransitionHandle(x1,x2);
|
||||||
glassTransitionHandle2();
|
|
||||||
//
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AnalysisMode::OnsetTemperaturePoint:{
|
case AnalysisMode::OnsetTemperaturePoint:{
|
||||||
double x1 = _line1->point1->coords().x();
|
#if 0
|
||||||
double x2 = _line2->point1->coords().x();
|
QPointF point = OnsetTemperaturePointHandle(x1,x2);
|
||||||
|
|
||||||
QPointF point = PointCalculate::onsetTemperaturePoint(x1,x2);
|
|
||||||
|
|
||||||
QString str = QString::number(point.y(),'f',3);
|
QString str = QString::number(point.y(),'f',3);
|
||||||
|
|
||||||
drawText(point,str);
|
drawText(point,str);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QPointF point = OnsetTemperaturePointHandle(x1,x2);
|
||||||
|
QString str = QString::number(point.x(),'f',3);
|
||||||
|
drawText(point,str);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -424,6 +431,8 @@ void CentralWidget::slotAnalysisSettingApply()
|
|||||||
|
|
||||||
void CentralWidget::slotAnalysisSettingConfirm()
|
void CentralWidget::slotAnalysisSettingConfirm()
|
||||||
{
|
{
|
||||||
|
ItemManager::confirm();
|
||||||
|
|
||||||
slotAnalysisSettingApply();
|
slotAnalysisSettingApply();
|
||||||
|
|
||||||
setAnalysisMode(CentralWidget::AnalysisMode::Null);
|
setAnalysisMode(CentralWidget::AnalysisMode::Null);
|
||||||
@ -437,6 +446,9 @@ void CentralWidget::slotAnalysisSettingConfirm()
|
|||||||
void CentralWidget::slotAnalysisSettingUndo()
|
void CentralWidget::slotAnalysisSettingUndo()
|
||||||
{
|
{
|
||||||
clearData(ClearDataMode::Undo);
|
clearData(ClearDataMode::Undo);
|
||||||
|
|
||||||
|
_x1Record = 0.0;
|
||||||
|
_x2Record = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CentralWidget::slotAnalysisSettingCancel()
|
void CentralWidget::slotAnalysisSettingCancel()
|
||||||
@ -547,128 +559,10 @@ void CentralWidget::contextMenuEvent(QContextMenuEvent *event)
|
|||||||
emit sigContextMenuShow(point);
|
emit sigContextMenuShow(point);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CentralWidget::glassTransitionHandle()
|
void CentralWidget::glassTransitionHandle(const double x1,const double x2)
|
||||||
{
|
{
|
||||||
QPointF point1 = PointCalculate::getClosestPointByX(_line1->point1->coords().x());
|
QPointF point1 = PointCalculate::getClosestPointByX(x1);
|
||||||
QPointF point2 = PointCalculate::getClosestPointByX(_line2->point1->coords().x());
|
QPointF point2 = PointCalculate::getClosestPointByX(x2);
|
||||||
|
|
||||||
logde<<"point1:"<<point1.x()<<","<<point1.y();
|
|
||||||
logde<<"point2:"<<point2.x()<<","<<point2.y();
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
QCPItemStraightLine *line1 = new QCPItemStraightLine(_customPlot);
|
|
||||||
line1->point1->setCoords(point1.x() - 5,point1.y());
|
|
||||||
line1->point2->setCoords(point1.x() + 5,point1.y());
|
|
||||||
line1->setPen(QPen(Qt::darkRed));
|
|
||||||
line1->setSelectable(false);
|
|
||||||
line1->setVisible(true);
|
|
||||||
|
|
||||||
QCPItemStraightLine *line2 = new QCPItemStraightLine(_customPlot);
|
|
||||||
line2->point1->setCoords(point2.x() - 5,point2.y());
|
|
||||||
line2->point2->setCoords(point2.x() + 5,point2.y());
|
|
||||||
line2->setPen(QPen(Qt::darkGreen));
|
|
||||||
line2->setSelectable(false);
|
|
||||||
line2->setVisible(true);
|
|
||||||
|
|
||||||
_customPlot->replot();
|
|
||||||
#endif
|
|
||||||
//
|
|
||||||
PointCalculate::Line lineStrc1,lineStrc2,tangetLineStrc;
|
|
||||||
|
|
||||||
lineStrc1.slope = 0.0;
|
|
||||||
lineStrc1.intercept = point1.y();
|
|
||||||
|
|
||||||
lineStrc2.slope = 0.0;
|
|
||||||
lineStrc2.intercept = point2.y();
|
|
||||||
|
|
||||||
QPair<float,float> tangentLinePair = PointCalculate::getCurveInflectionPointTangent(point1.x(),point2.x());
|
|
||||||
tangetLineStrc.slope = tangentLinePair.first;
|
|
||||||
tangetLineStrc.intercept = tangentLinePair.second;
|
|
||||||
|
|
||||||
QPointF intersection1 = PointCalculate::getIntersection(tangetLineStrc,lineStrc1);
|
|
||||||
QPointF intersection2 = PointCalculate::getIntersection(tangetLineStrc,lineStrc2);
|
|
||||||
|
|
||||||
// logde<<"intersection1 x:"<<intersection1.x();
|
|
||||||
// logde<<"intersection2 x:"<<intersection2.x();
|
|
||||||
|
|
||||||
//
|
|
||||||
float averageY = (point1.y() + point2.y()) /2;
|
|
||||||
logde<<"average Y:"<<averageY;
|
|
||||||
QPointF averagePoint = PointCalculate::getClosestPointByY(point1.x(),point2.x(),averageY);
|
|
||||||
|
|
||||||
// logde<<"average y:"<<averageY;
|
|
||||||
|
|
||||||
logde<<"averagePoint x,y:"<<averagePoint.x()<<","
|
|
||||||
<<averagePoint.y();
|
|
||||||
|
|
||||||
logde<<"glass T1:"<<intersection1.x()
|
|
||||||
<<",Tg:"<<averagePoint.x()
|
|
||||||
<<",T2:"<<intersection2.x();
|
|
||||||
|
|
||||||
QString str = PointCalculate::textFormatGlassTranstion(intersection2.x(),
|
|
||||||
averagePoint.x(),
|
|
||||||
intersection1.x());
|
|
||||||
//draw line
|
|
||||||
///line1
|
|
||||||
QVector<double> xVtr,yVtr;
|
|
||||||
xVtr.push_back(intersection1.x());
|
|
||||||
xVtr.push_back(point1.x());
|
|
||||||
|
|
||||||
yVtr.push_back(intersection1.y());
|
|
||||||
yVtr.push_back(point1.y());
|
|
||||||
|
|
||||||
QCPGraph *lineGraph1 = _customPlot->addGraph();
|
|
||||||
lineGraph1->setData(xVtr, yVtr);
|
|
||||||
_customPlot->replot();
|
|
||||||
|
|
||||||
///line2
|
|
||||||
QVector<double> xVtr2,yVtr2;
|
|
||||||
xVtr2.push_back(intersection2.x());
|
|
||||||
xVtr2.push_back(point2.x());
|
|
||||||
|
|
||||||
yVtr2.push_back(intersection2.y());
|
|
||||||
yVtr2.push_back(point2.y());
|
|
||||||
|
|
||||||
QCPGraph *lineGraph2 = _customPlot->addGraph();
|
|
||||||
lineGraph2->setData(xVtr2, yVtr2);
|
|
||||||
_customPlot->replot();
|
|
||||||
|
|
||||||
//draw text
|
|
||||||
drawText(averagePoint,str);
|
|
||||||
|
|
||||||
_customPlot->replot();
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
// 创建一个圆形绘图项
|
|
||||||
QCPItemEllipse *circle = new QCPItemEllipse(_customPlot);
|
|
||||||
// _customPlot->addItem(circle);
|
|
||||||
|
|
||||||
// 设置圆形的位置和大小
|
|
||||||
circle->topLeft->setCoords(-5, 5);
|
|
||||||
circle->bottomRight->setCoords(5, -5);
|
|
||||||
|
|
||||||
// 设置圆形的填充和边框颜色
|
|
||||||
circle->setBrush(QBrush(Qt::cyan));
|
|
||||||
circle->setPen(QPen(Qt::blue));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
QCPItemStraightLine *line3 = new QCPItemStraightLine(_customPlot);
|
|
||||||
line3->point1->setCoords(averagePoint.x() + 1,averagePoint.y() + 1);
|
|
||||||
line3->point2->setCoords(averagePoint.x() - 1,averagePoint.y() - 1);
|
|
||||||
line3->setPen(QPen(Qt::black));
|
|
||||||
line3->setSelectable(false);
|
|
||||||
line3->setVisible(true);
|
|
||||||
|
|
||||||
_customPlot->replot();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void CentralWidget::glassTransitionHandle2()
|
|
||||||
{
|
|
||||||
QPointF point1 = PointCalculate::getClosestPointByX(_line1->point1->coords().x());
|
|
||||||
QPointF point2 = PointCalculate::getClosestPointByX(_line2->point1->coords().x());
|
|
||||||
|
|
||||||
logde<<"point1:"<<point1.x()<<","<<point1.y();
|
logde<<"point1:"<<point1.x()<<","<<point1.y();
|
||||||
logde<<"point2:"<<point2.x()<<","<<point2.y();
|
logde<<"point2:"<<point2.x()<<","<<point2.y();
|
||||||
@ -699,6 +593,9 @@ void CentralWidget::glassTransitionHandle2()
|
|||||||
|
|
||||||
QCPGraph *lineGraph1 = _customPlot->addGraph();
|
QCPGraph *lineGraph1 = _customPlot->addGraph();
|
||||||
lineGraph1->setData(xVtr, yVtr);
|
lineGraph1->setData(xVtr, yVtr);
|
||||||
|
|
||||||
|
ItemManager::addTemporaryQCPGraph(lineGraph1);
|
||||||
|
|
||||||
QPen pen;
|
QPen pen;
|
||||||
pen.setColor(Qt::darkGreen);
|
pen.setColor(Qt::darkGreen);
|
||||||
lineGraph1->setPen(pen);
|
lineGraph1->setPen(pen);
|
||||||
@ -728,12 +625,14 @@ void CentralWidget::glassTransitionHandle2()
|
|||||||
lineGraph2->setData(xVtr2, yVtr2);
|
lineGraph2->setData(xVtr2, yVtr2);
|
||||||
lineGraph2->setPen(pen);
|
lineGraph2->setPen(pen);
|
||||||
|
|
||||||
|
ItemManager::addTemporaryQCPGraph(lineGraph2);
|
||||||
|
|
||||||
_customPlot->replot();
|
_customPlot->replot();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// inflection point.
|
// inflection point.
|
||||||
QVector<QPointF> originalPointVtr = PointCalculate::getPointVtrInXRange(point1.x(),point2.x());
|
QVector<QPointF> originalPointVtr = PointCalculate::getPointVtrInXRange(point1.x(),point2.x());
|
||||||
// QVector<QPointF> pointVtr = PointCalculate::movingAveragePoint(originalPointVtr,3);
|
|
||||||
QVector<QPointF> pointVtr = originalPointVtr;
|
QVector<QPointF> pointVtr = originalPointVtr;
|
||||||
|
|
||||||
xVtr.clear();
|
xVtr.clear();
|
||||||
@ -748,6 +647,7 @@ void CentralWidget::glassTransitionHandle2()
|
|||||||
double targetX = 0.0;
|
double targetX = 0.0;
|
||||||
PointCalculate::Line targetLine;
|
PointCalculate::Line targetLine;
|
||||||
double maxSlopeAbs = 0.0; // 初始化最大斜率绝对值为0
|
double maxSlopeAbs = 0.0; // 初始化最大斜率绝对值为0
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
for (auto it = tangentLines.begin(); it != tangentLines.end(); ++it) {
|
for (auto it = tangentLines.begin(); it != tangentLines.end(); ++it) {
|
||||||
if (std::fabs(it.value().slope) > maxSlopeAbs) {
|
if (std::fabs(it.value().slope) > maxSlopeAbs) {
|
||||||
@ -758,6 +658,7 @@ void CentralWidget::glassTransitionHandle2()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// new method
|
// new method
|
||||||
for (auto it = tangentLines.begin(); it != tangentLines.end(); ++it) {
|
for (auto it = tangentLines.begin(); it != tangentLines.end(); ++it) {
|
||||||
if (std::fabs(it.value().slope) > maxSlopeAbs) {
|
if (std::fabs(it.value().slope) > maxSlopeAbs) {
|
||||||
@ -801,6 +702,7 @@ void CentralWidget::glassTransitionHandle2()
|
|||||||
xVtr.push_back(point1.x());
|
xVtr.push_back(point1.x());
|
||||||
yVtr.push_back(point1.y());
|
yVtr.push_back(point1.y());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
xVtr.push_back(intersection1.x());
|
xVtr.push_back(intersection1.x());
|
||||||
yVtr.push_back(intersection1.y());
|
yVtr.push_back(intersection1.y());
|
||||||
@ -812,6 +714,8 @@ void CentralWidget::glassTransitionHandle2()
|
|||||||
QCPGraph *lineGraph3 = _customPlot->addGraph();
|
QCPGraph *lineGraph3 = _customPlot->addGraph();
|
||||||
lineGraph3->setData(xVtr, yVtr);
|
lineGraph3->setData(xVtr, yVtr);
|
||||||
lineGraph3->setPen(pen);
|
lineGraph3->setPen(pen);
|
||||||
|
|
||||||
|
ItemManager::addTemporaryQCPGraph(lineGraph3);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_customPlot->replot();
|
_customPlot->replot();
|
||||||
@ -853,6 +757,32 @@ PointCalculate::Line CentralWidget::calculateLinearRegression(const QVector<doub
|
|||||||
return line;
|
return line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QPointF CentralWidget::OnsetTemperaturePointHandle(const double x1,const double x2)
|
||||||
|
{
|
||||||
|
QVector<QPointF> rowPointVtr = PointCalculate::getPointVtrInXRange(x1,x2);
|
||||||
|
|
||||||
|
QVector<QPointF> pointVtr = PointCalculate::movingAveragePoint(rowPointVtr,5);
|
||||||
|
|
||||||
|
QVector<double> xVtr,yVtr;
|
||||||
|
for (QPointF &point : pointVtr) {
|
||||||
|
xVtr.push_back(point.x());
|
||||||
|
yVtr.push_back(point.y());
|
||||||
|
}
|
||||||
|
|
||||||
|
double coeff[3] = {0};
|
||||||
|
Global::quadraticLeastSquaresFit(xVtr.data(),yVtr.data(),xVtr.size(),coeff);
|
||||||
|
|
||||||
|
// derivative
|
||||||
|
double a = coeff[0] * 2;
|
||||||
|
double b = coeff[1];
|
||||||
|
|
||||||
|
double targetX = Global::findNegativeStartPoint(a,b,pointVtr.first().x(),pointVtr.last().x());
|
||||||
|
logde<<"traget x:"<<targetX;
|
||||||
|
|
||||||
|
// QPointF targetPoint = PointCalculate::getClosestPointByX(targetX);
|
||||||
|
return PointCalculate::getClosestPointByX(targetX);
|
||||||
|
}
|
||||||
|
|
||||||
// 二次多项式拟合函数
|
// 二次多项式拟合函数
|
||||||
void CentralWidget::quadraticFit(const QVector<QPointF>& points, double& a, double& b, double& c) {
|
void CentralWidget::quadraticFit(const QVector<QPointF>& points, double& a, double& b, double& c) {
|
||||||
int n = points.size();
|
int n = points.size();
|
||||||
@ -956,6 +886,8 @@ void CentralWidget::drawText(const QPointF point, const QString text)
|
|||||||
textLabel->setSelectedFont(font);
|
textLabel->setSelectedFont(font);
|
||||||
textLabel->setSelectable(true); // 设置为可选
|
textLabel->setSelectable(true); // 设置为可选
|
||||||
|
|
||||||
|
ItemManager::addTemporaryQCPItemText(textLabel);
|
||||||
|
|
||||||
// 创建指向点的线段(QCPItemLine)
|
// 创建指向点的线段(QCPItemLine)
|
||||||
QCPItemLine *arrow = new QCPItemLine(_customPlot);
|
QCPItemLine *arrow = new QCPItemLine(_customPlot);
|
||||||
arrow->start->setParentAnchor(textLabel->left); // 线段起点绑定到标注文字底部
|
arrow->start->setParentAnchor(textLabel->left); // 线段起点绑定到标注文字底部
|
||||||
@ -963,6 +895,8 @@ void CentralWidget::drawText(const QPointF point, const QString text)
|
|||||||
arrow->setHead(QCPLineEnding::esSpikeArrow); // 添加箭头
|
arrow->setHead(QCPLineEnding::esSpikeArrow); // 添加箭头
|
||||||
arrow->setPen(QPen(Qt::red, 1));
|
arrow->setPen(QPen(Qt::red, 1));
|
||||||
|
|
||||||
|
ItemManager::addTemporaryQCPItemLine(arrow);
|
||||||
|
|
||||||
// 重绘图表以显示文本标签和箭头
|
// 重绘图表以显示文本标签和箭头
|
||||||
_customPlot->replot();
|
_customPlot->replot();
|
||||||
}
|
}
|
||||||
@ -981,7 +915,6 @@ void CentralWidget::fillGraph(const double x1, const double x2)
|
|||||||
|
|
||||||
QCPGraph *mainGraph = _customPlot->addGraph();
|
QCPGraph *mainGraph = _customPlot->addGraph();
|
||||||
mainGraph->setData(xVtr, yVtr);
|
mainGraph->setData(xVtr, yVtr);
|
||||||
|
|
||||||
mainGraph->setPen(QPen(Qt::red, 1));
|
mainGraph->setPen(QPen(Qt::red, 1));
|
||||||
|
|
||||||
QVector<Global::ExperimentData> curveDataVtr =
|
QVector<Global::ExperimentData> curveDataVtr =
|
||||||
@ -995,55 +928,102 @@ void CentralWidget::fillGraph(const double x1, const double x2)
|
|||||||
fillX<<ed.sampleTemp;
|
fillX<<ed.sampleTemp;
|
||||||
fillY<<ed.dsc;
|
fillY<<ed.dsc;
|
||||||
}
|
}
|
||||||
|
|
||||||
fillGraph->setData(fillX, fillY);
|
fillGraph->setData(fillX, fillY);
|
||||||
|
|
||||||
fillGraph->setBrush(QBrush(Qt::green, Qt::SolidPattern));
|
fillGraph->setBrush(QBrush(Qt::green, Qt::SolidPattern));
|
||||||
fillGraph->setChannelFillGraph(mainGraph);
|
fillGraph->setChannelFillGraph(mainGraph);
|
||||||
|
|
||||||
|
ItemManager::addTemporaryQCPGraph(mainGraph);
|
||||||
|
ItemManager::addTemporaryQCPGraph(fillGraph);
|
||||||
|
|
||||||
_customPlot->replot();
|
_customPlot->replot();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CentralWidget::clearData(const CentralWidget::ClearDataMode mode)
|
void CentralWidget::clearData(const CentralWidget::ClearDataMode mode)
|
||||||
{
|
{
|
||||||
if(mode == ClearDataMode::All){
|
if(mode == ClearDataMode::All){
|
||||||
// Clear the data of graph.
|
|
||||||
|
|
||||||
for (int i = _customPlot->plottableCount() - 1; i >= 0; --i) {
|
|
||||||
QCPAbstractPlottable* plottable = _customPlot->plottable(i);
|
|
||||||
if (auto curve = dynamic_cast<QCPCurve*>(plottable)) {
|
|
||||||
_customPlot->removePlottable(curve);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear data.
|
// Clear data.
|
||||||
Global::_curveExperimentDataVtr.clear();
|
Global::_curveExperimentDataVtr.clear();
|
||||||
|
|
||||||
// Set lines visiable false.
|
// Set lines visiable false.
|
||||||
_line1->setVisible(false);
|
_line1->setVisible(false);
|
||||||
_line2->setVisible(false);
|
_line2->setVisible(false);
|
||||||
}
|
|
||||||
|
|
||||||
#if 0
|
_currentCurve = nullptr;
|
||||||
// Clear graph on plot.
|
|
||||||
for (int i = _customPlot->graphCount() - 1; i >= 0; --i) {
|
|
||||||
QCPGraph *graph = _customPlot->graph(i);
|
|
||||||
_customPlot->removeGraph(graph);
|
|
||||||
}
|
|
||||||
_currentCurve = nullptr;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Delete items.
|
//ui
|
||||||
QList<QCPAbstractItem *> itemsToKeep;
|
// Clear the data of graph.
|
||||||
itemsToKeep << _line1 << _line2;
|
for (int i = _customPlot->plottableCount() - 1; i >= 0; --i) {
|
||||||
|
QCPAbstractPlottable* plottable = _customPlot->plottable(i);
|
||||||
|
if (auto curve = dynamic_cast<QCPCurve*>(plottable)) {
|
||||||
|
_customPlot->removePlottable(curve);
|
||||||
|
|
||||||
for (int i = _customPlot->itemCount() - 1; i >= 0; --i) {
|
ItemManager::removeItem(curve);
|
||||||
QCPAbstractItem *item = _customPlot->item(i);
|
}
|
||||||
if (!itemsToKeep.contains(item)) {
|
}
|
||||||
_customPlot->removeItem(item);
|
|
||||||
|
// Clear graph on plot.
|
||||||
|
for (int i = _customPlot->graphCount() - 1; i >= 0; --i) {
|
||||||
|
QCPGraph *graph = _customPlot->graph(i);
|
||||||
|
_customPlot->removeGraph(graph);
|
||||||
|
|
||||||
|
ItemManager::removeItem(graph);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete items.
|
||||||
|
QList<QCPAbstractItem *> itemsToKeep;
|
||||||
|
itemsToKeep << _line1 << _line2;
|
||||||
|
|
||||||
|
for (int i = _customPlot->itemCount() - 1; i >= 0; --i) {
|
||||||
|
QCPAbstractItem *item = _customPlot->item(i);
|
||||||
|
if (!itemsToKeep.contains(item)) {
|
||||||
|
_customPlot->removeItem(item);
|
||||||
|
|
||||||
|
ItemManager::removeItem(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else if(mode == ClearDataMode::Undo){
|
||||||
|
// Clear the data of graph.
|
||||||
|
for (int i = _customPlot->plottableCount() - 1; i >= 0; --i) {
|
||||||
|
QCPAbstractPlottable* plottable = _customPlot->plottable(i);
|
||||||
|
if (auto curve = dynamic_cast<QCPCurve*>(plottable)) {
|
||||||
|
logde<<"clear data,curve object Name:"<<curve->objectName().toStdString();
|
||||||
|
if(curve->objectName() == ItemManager::TemporaryStr){
|
||||||
|
_customPlot->removePlottable(curve);
|
||||||
|
|
||||||
|
ItemManager::removeItem(curve);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear graph on plot.
|
||||||
|
for (int i = _customPlot->graphCount() - 1; i >= 0; --i) {
|
||||||
|
QCPGraph *graph = _customPlot->graph(i);
|
||||||
|
logde<<"clear data,graph object Name:"<<graph->objectName().toStdString();
|
||||||
|
if(graph && graph->objectName() == ItemManager::TemporaryStr){
|
||||||
|
_customPlot->removeGraph(graph);
|
||||||
|
|
||||||
|
ItemManager::removeItem(graph);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete items.
|
||||||
|
QList<QCPAbstractItem *> itemsToKeep;
|
||||||
|
itemsToKeep << _line1 << _line2;
|
||||||
|
|
||||||
|
for (int i = _customPlot->itemCount() - 1; i >= 0; --i) {
|
||||||
|
QCPAbstractItem *item = _customPlot->item(i);
|
||||||
|
logde<<"item data,graph object Name:"<<item->objectName().toStdString();
|
||||||
|
if(item && !itemsToKeep.contains(item)
|
||||||
|
&& item->objectName() == ItemManager::TemporaryStr){
|
||||||
|
_customPlot->removeItem(item);
|
||||||
|
|
||||||
|
ItemManager::removeItem(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 重绘图表以显示更改
|
|
||||||
_customPlot->replot();
|
_customPlot->replot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -75,13 +75,13 @@ protected:
|
|||||||
void timerEvent(QTimerEvent* event);
|
void timerEvent(QTimerEvent* event);
|
||||||
void contextMenuEvent(QContextMenuEvent *event);
|
void contextMenuEvent(QContextMenuEvent *event);
|
||||||
private:
|
private:
|
||||||
void glassTransitionHandle();
|
void glassTransitionHandle(const double x1,const double x2);
|
||||||
|
|
||||||
void glassTransitionHandle2();
|
|
||||||
void quadraticFit(const QVector<QPointF>& points, double& a, double& b, double& c);
|
void quadraticFit(const QVector<QPointF>& points, double& a, double& b, double& c);
|
||||||
double derivativeAt(const double a, const double b, const double x);
|
double derivativeAt(const double a, const double b, const double x);
|
||||||
PointCalculate::Line calculateLinearRegression(const QVector<double>& x, const QVector<double>& y);
|
PointCalculate::Line calculateLinearRegression(const QVector<double>& x, const QVector<double>& y);
|
||||||
|
|
||||||
|
QPointF OnsetTemperaturePointHandle(const double x1,const double x2);
|
||||||
|
|
||||||
void setEventHandlerEnable(const bool);
|
void setEventHandlerEnable(const bool);
|
||||||
QPointF getTheCoordinatesOfTheTextBox(const QPointF point);
|
QPointF getTheCoordinatesOfTheTextBox(const QPointF point);
|
||||||
void drawText(const QPointF,const QString);
|
void drawText(const QPointF,const QString);
|
||||||
@ -92,20 +92,19 @@ private:
|
|||||||
Undo
|
Undo
|
||||||
};
|
};
|
||||||
void clearData(const ClearDataMode);
|
void clearData(const ClearDataMode);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AnalysisMode _analysisMode;
|
AnalysisMode _analysisMode;
|
||||||
LocalCustomPlot *_customPlot;
|
LocalCustomPlot *_customPlot;
|
||||||
// QCustomPlot*_customPlot;
|
|
||||||
QCPCurve *_currentCurve;
|
QCPCurve *_currentCurve;
|
||||||
// QVector<QCPCurve *> _curveVtr;
|
|
||||||
// QCPGraph* _currentGraph;
|
|
||||||
// QVector<QCPGraph*> _graphVtr;
|
|
||||||
EventHandler* _eventHandler;
|
EventHandler* _eventHandler;
|
||||||
QCPItemStraightLine *_line1,*_line2;
|
QCPItemStraightLine *_line1,*_line2;
|
||||||
// QVector<Global::ExperimentData> _dataVtr;
|
|
||||||
QVector<QCPItemStraightLine*> _lineVtr;
|
QVector<QCPItemStraightLine*> _lineVtr;
|
||||||
AxisMode _axisMode;
|
AxisMode _axisMode;
|
||||||
QVector<QString> _analysisFilePathVtr;
|
QVector<QString> _analysisFilePathVtr;
|
||||||
|
|
||||||
|
double _x1Record;
|
||||||
|
double _x2Record;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CENTRALWIDGET_H
|
#endif // CENTRALWIDGET_H
|
||||||
|
|||||||
@ -89,7 +89,7 @@ void CoefficientSelectionForm::on_pushButtonConfirm_clicked()
|
|||||||
}
|
}
|
||||||
|
|
||||||
double coeff[3] = {0};
|
double coeff[3] = {0};
|
||||||
quadraticLeastSquaresFit(xVtr.data(),yVtr.data(),xVtr.size(),coeff);
|
Global::quadraticLeastSquaresFit(xVtr.data(),yVtr.data(),xVtr.size(),coeff);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
std::cout << "Fitted quadratic polynomial: y = "
|
std::cout << "Fitted quadratic polynomial: y = "
|
||||||
@ -105,9 +105,9 @@ void CoefficientSelectionForm::on_pushButtonConfirm_clicked()
|
|||||||
Global::_enthalpyCoefficientEnableFlag = true;
|
Global::_enthalpyCoefficientEnableFlag = true;
|
||||||
|
|
||||||
Global::_enthalpyCoefficientVtr.clear();
|
Global::_enthalpyCoefficientVtr.clear();
|
||||||
Global::_enthalpyCoefficientVtr.push_back(coeff[2]);
|
|
||||||
Global::_enthalpyCoefficientVtr.push_back(coeff[1]);
|
|
||||||
Global::_enthalpyCoefficientVtr.push_back(coeff[0]);
|
Global::_enthalpyCoefficientVtr.push_back(coeff[0]);
|
||||||
|
Global::_enthalpyCoefficientVtr.push_back(coeff[1]);
|
||||||
|
Global::_enthalpyCoefficientVtr.push_back(coeff[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
hide();
|
hide();
|
||||||
@ -128,67 +128,7 @@ void CoefficientSelectionForm::on_pushButtonExit_clicked()
|
|||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoefficientSelectionForm::quadraticLeastSquaresFit(double x[], double y[], int n, double coeff[]) {
|
|
||||||
if (n < 3) {
|
|
||||||
throw std::invalid_argument("At least 3 data points are required for quadratic fitting");
|
|
||||||
}
|
|
||||||
|
|
||||||
double sum_x = 0, sum_x2 = 0, sum_x3 = 0, sum_x4 = 0;
|
|
||||||
double sum_y = 0, sum_xy = 0, sum_x2y = 0;
|
|
||||||
|
|
||||||
// 计算各项累加和
|
|
||||||
for (int i = 0; i < n; ++i) {
|
|
||||||
double xi = x[i];
|
|
||||||
double xi2 = xi * xi;
|
|
||||||
double xi3 = xi2 * xi;
|
|
||||||
double xi4 = xi3 * xi;
|
|
||||||
double yi = y[i];
|
|
||||||
|
|
||||||
sum_x += xi;
|
|
||||||
sum_x2 += xi2;
|
|
||||||
sum_x3 += xi3;
|
|
||||||
sum_x4 += xi4;
|
|
||||||
sum_y += yi;
|
|
||||||
sum_xy += xi * yi;
|
|
||||||
sum_x2y += xi2 * yi;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 构建正规方程组的增广矩阵
|
|
||||||
double matrix[3][4] = {
|
|
||||||
{sum_x4, sum_x3, sum_x2, sum_x2y}, // 对应方程: a*Σx⁴ + b*Σx³ + c*Σx² = Σx²y
|
|
||||||
{sum_x3, sum_x2, sum_x, sum_xy}, // 对应方程: a*Σx³ + b*Σx² + c*Σx = Σxy
|
|
||||||
{sum_x2, sum_x, static_cast<double>(n), sum_y} // 对应方程: a*Σx² + b*Σx + c*n = Σy
|
|
||||||
};
|
|
||||||
|
|
||||||
// 高斯消元法解方程组
|
|
||||||
for (int i = 0; i < 3; ++i) {
|
|
||||||
// 部分主元选择
|
|
||||||
int maxRow = i;
|
|
||||||
for (int k = i + 1; k < 3; ++k) {
|
|
||||||
if (std::abs(matrix[k][i]) > std::abs(matrix[maxRow][i])) {
|
|
||||||
maxRow = k;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 交换行
|
|
||||||
for (int k = i; k < 4; ++k) {
|
|
||||||
std::swap(matrix[i][k], matrix[maxRow][k]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 消元
|
|
||||||
for (int k = i + 1; k < 3; ++k) {
|
|
||||||
double factor = matrix[k][i] / matrix[i][i];
|
|
||||||
for (int j = i; j < 4; ++j) {
|
|
||||||
matrix[k][j] -= factor * matrix[i][j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 回代求解
|
|
||||||
coeff[2] = matrix[2][3] / matrix[2][2]; // c
|
|
||||||
coeff[1] = (matrix[1][3] - matrix[1][2] * coeff[2]) / matrix[1][1]; // b
|
|
||||||
coeff[0] = (matrix[0][3] - matrix[0][2] * coeff[2] - matrix[0][1] * coeff[1]) / matrix[0][0]; // a
|
|
||||||
}
|
|
||||||
void CoefficientSelectionForm::on_pushButtonSelectFile_clicked()
|
void CoefficientSelectionForm::on_pushButtonSelectFile_clicked()
|
||||||
{
|
{
|
||||||
QString filePath = QFileDialog::getOpenFileName(
|
QString filePath = QFileDialog::getOpenFileName(
|
||||||
@ -256,84 +196,3 @@ void CoefficientSelectionForm::on_radioButtonMultiPointCoefficient_toggled(bool
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoefficientSelectionForm::cubicLeastSquaresFit(
|
|
||||||
double x[], double y[], int n, double coeff[])
|
|
||||||
{
|
|
||||||
int i, j, k;
|
|
||||||
double atemp[3] = {0}; // 存储x^0, x^1, x^2的和
|
|
||||||
double b[3] = {0}; // 右侧向量
|
|
||||||
|
|
||||||
// 计算各次幂的和
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
double xi = x[i];
|
|
||||||
double xi_pow2 = xi * xi; // x^2
|
|
||||||
|
|
||||||
// 累加atemp[0]到atemp[2]
|
|
||||||
atemp[0] += 1; // x^0的和等于数据点个数
|
|
||||||
atemp[1] += xi;
|
|
||||||
atemp[2] += xi_pow2;
|
|
||||||
|
|
||||||
// 计算右侧向量b
|
|
||||||
double yi = y[i];
|
|
||||||
b[0] += yi;
|
|
||||||
b[1] += yi * xi;
|
|
||||||
b[2] += yi * xi_pow2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 构建法方程矩阵
|
|
||||||
double a[3][3];
|
|
||||||
a[0][0] = atemp[0];
|
|
||||||
a[0][1] = atemp[1];
|
|
||||||
a[0][2] = atemp[2];
|
|
||||||
a[1][0] = atemp[1];
|
|
||||||
a[1][1] = atemp[2];
|
|
||||||
a[1][2] = 0;
|
|
||||||
a[2][0] = atemp[2];
|
|
||||||
a[2][1] = 0;
|
|
||||||
a[2][2] = 0;
|
|
||||||
|
|
||||||
// 高斯列主元消元法
|
|
||||||
for (k = 0; k < 2; k++) { // 消去第k列
|
|
||||||
// 寻找主元行
|
|
||||||
int max_row = k;
|
|
||||||
double max_val = fabs(a[k][k]);
|
|
||||||
for (i = k + 1; i < 3; i++) {
|
|
||||||
if (fabs(a[i][k]) > max_val) {
|
|
||||||
max_val = fabs(a[i][k]);
|
|
||||||
max_row = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 交换行
|
|
||||||
if (max_row != k) {
|
|
||||||
for (j = k; j < 3; j++) {
|
|
||||||
double temp = a[k][j];
|
|
||||||
a[k][j] = a[max_row][j];
|
|
||||||
a[max_row][j] = temp;
|
|
||||||
}
|
|
||||||
double temp_b = b[k];
|
|
||||||
b[k] = b[max_row];
|
|
||||||
b[max_row] = temp_b;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 消元
|
|
||||||
for (i = k + 1; i < 3; i++) {
|
|
||||||
double factor = a[i][k] / a[k][k];
|
|
||||||
for (j = k; j < 3; j++) {
|
|
||||||
a[i][j] -= factor * a[k][j];
|
|
||||||
}
|
|
||||||
b[i] -= factor * b[k];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 回代求解
|
|
||||||
coeff[2] = b[2] / a[2][2];
|
|
||||||
for (i = 1; i >= 0; i--) {
|
|
||||||
double sum = 0.0;
|
|
||||||
for (j = i + 1; j < 3; j++) {
|
|
||||||
sum += a[i][j] * coeff[j];
|
|
||||||
}
|
|
||||||
coeff[i] = (b[i] - sum) / a[i][i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -26,11 +26,6 @@ private slots:
|
|||||||
void on_pushButtonConfirm_clicked();
|
void on_pushButtonConfirm_clicked();
|
||||||
void on_pushButtonExit_clicked();
|
void on_pushButtonExit_clicked();
|
||||||
private:
|
private:
|
||||||
// 立方拟合
|
|
||||||
void cubicLeastSquaresFit(double x[], double y[], int n, double coeff[4]);
|
|
||||||
// 平方拟合
|
|
||||||
void quadraticLeastSquaresFit(double x[], double y[], int n, double coeff[]);
|
|
||||||
|
|
||||||
QString _jsonStr;
|
QString _jsonStr;
|
||||||
Ui::CoefficientSelectionForm *ui;
|
Ui::CoefficientSelectionForm *ui;
|
||||||
float _instrumentCoefficient;
|
float _instrumentCoefficient;
|
||||||
|
|||||||
72
src/ui/itemmanager.cpp
Normal file
72
src/ui/itemmanager.cpp
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#include "itemmanager.h"
|
||||||
|
|
||||||
|
namespace ItemManager {
|
||||||
|
QVector<QCPItemText*> _QCPItemTextVtr;
|
||||||
|
QVector<QCPItemLine*> _QCPItemLineVtr;
|
||||||
|
QVector<QCPGraph*> _QCPGraphVtr;
|
||||||
|
|
||||||
|
void addTemporaryQCPItemText(QCPItemText *item)
|
||||||
|
{
|
||||||
|
item->setObjectName(TemporaryStr);
|
||||||
|
_QCPItemTextVtr.push_back(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void addTemporaryQCPItemLine(QCPItemLine *item)
|
||||||
|
{
|
||||||
|
item->setObjectName(TemporaryStr);
|
||||||
|
_QCPItemLineVtr.push_back(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void confirm()
|
||||||
|
{
|
||||||
|
for(QCPItemText *item:_QCPItemTextVtr){
|
||||||
|
item->setObjectName(ConfirmStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(QCPItemLine *item:_QCPItemLineVtr){
|
||||||
|
item->setObjectName(ConfirmStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(QCPGraph *graph:_QCPGraphVtr){
|
||||||
|
graph->setObjectName(ConfirmStr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void addTemporaryQCPGraph(QCPGraph * graph)
|
||||||
|
{
|
||||||
|
graph->setObjectName(TemporaryStr);
|
||||||
|
_QCPGraphVtr.push_back(graph);
|
||||||
|
}
|
||||||
|
|
||||||
|
void removeItem(QObject *obj)
|
||||||
|
{
|
||||||
|
for (int i = _QCPItemTextVtr.size() - 1; i >= 0; --i) {
|
||||||
|
QCPItemText *item = _QCPItemTextVtr[i];
|
||||||
|
if (item == obj) {
|
||||||
|
_QCPItemTextVtr.remove(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = _QCPItemLineVtr.size() - 1; i >= 0; --i) {
|
||||||
|
QCPItemLine *item = _QCPItemLineVtr[i];
|
||||||
|
if (item == obj) {
|
||||||
|
_QCPItemLineVtr.remove(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = _QCPGraphVtr.size() - 1; i >= 0; --i) {
|
||||||
|
QCPGraph *item = _QCPGraphVtr[i];
|
||||||
|
if (item == obj) {
|
||||||
|
_QCPGraphVtr.remove(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
33
src/ui/itemmanager.h
Normal file
33
src/ui/itemmanager.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#ifndef ITEMMANAGER_H
|
||||||
|
#define ITEMMANAGER_H
|
||||||
|
|
||||||
|
#include "qcustomplot.h"
|
||||||
|
|
||||||
|
namespace ItemManager {
|
||||||
|
const QString OriginStr("origin");
|
||||||
|
const QString ConfirmStr("confirm");
|
||||||
|
const QString TemporaryStr("temporary");
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
enum ItemAttribute{
|
||||||
|
Origin,
|
||||||
|
Last,
|
||||||
|
Temporary
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern QVector<QCPItemText*> _QCPItemTextVtr;
|
||||||
|
extern QVector<QCPItemLine*> _QCPItemLineVtr;
|
||||||
|
extern QVector<QCPGraph*> _QCPGraphVtr;
|
||||||
|
|
||||||
|
void addTemporaryQCPItemText(QCPItemText*);
|
||||||
|
void addTemporaryQCPItemLine(QCPItemLine*);
|
||||||
|
void addTemporaryQCPGraph(QCPGraph*);
|
||||||
|
|
||||||
|
void removeItem(QObject* obj);
|
||||||
|
|
||||||
|
void confirm();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // ITEMMANAGER_H
|
||||||
Loading…
Reference in New Issue
Block a user