21. 与门/或门逻辑交互
·
1. 与门/或门逻辑交互
场景:演示基本逻辑门的真值表,输入开关控制输出灯亮灭。
核心逻辑:利用状态变量模拟输入电平,通过颜色变化直观展示逻辑结果。
@Entry
@Component
struct LogicGateDemo {
@State inputA: boolean = false
@State inputB: boolean = false
build() {
Column({ space: 30 }) {
Text('基本逻辑门演示').fontSize(24).fontWeight(FontWeight.Bold)
// 输入控制区
Row({ space: 50 }) {
Column() {
Text('Input A')
Toggle({ type: ToggleType.Switch, isOn: this.inputA })
.onChange((isOn) => { this.inputA = isOn })
.selectedColor(Color.Green)
}
Column() {
Text('Input B')
Toggle({ type: ToggleType.Switch, isOn: this.inputB })
.onChange((isOn) => { this.inputB = isOn })
.selectedColor(Color.Green)
}
}
// 符号与输出
Row({ space: 20 }) {
// 输入线
Line().width(40).height(2).backgroundColor(this.inputA ? Color.Green : Color.Gray)
Line().width(40).height(2).backgroundColor(this.inputB ? Color.Green : Color.Gray)
// 逻辑门符号 (矩形代表AND)
Text('AND')
.width(50)
.height(50)
.borderWidth(2)
.textAlign(TextAlign.Center)
.borderRadius(5)
// 输出线
Line().width(40).height(2).backgroundColor((this.inputA && this.inputB) ? Color.Green : Color.Gray)
// 输出灯
Circle()
.width(30)
.height(30)
.fill((this.inputA && this.inputB) ? Color.Yellow : Color.Black)
}
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
}
}
更多推荐

所有评论(0)